Skip to content

Releases: OGRECave/ogre

v13.5.3

24 Nov 21:43
0df846d
Compare
Choose a tag to compare
  • Main: range loop refactoring (#2668)
  • RTSS
    • check the result of std::find to prevent erasing 'end' iterator (#2676)
    • Instancing - ensure software skinning is off, when this is enabled
  • Terrain: TerrainTransform - do not crash if Vertex Compression is off
  • CMake
    • do not enable fp:fast by default on MSVC
    • drop checks for MSVC versions that we no longer support
  • D3D9: we must check num requested mips against MIP_UNLIMITED
  • Tests: use preprocessor defines instead of typeid

v13.5.2

15 Nov 22:38
Compare
Choose a tag to compare
  • Main:
    • don't fail when trying to assign too many array elements in a shader (#2670)
    • fix the build with VIEWPORT_ORIENTATIONMODE (#2665)
    • range loop refactoring (#2630)
    • slightly clean up MeshSerializerImpl
  • CMake: allow using latest SWIG
  • ParticleFX: TextureAnimatorAffector - fix init for recycled particles
  • GLES2: fix access to an iterator after its container has beed destroyed (#2672)
  • GL: relax an assert() to not trigger on legitimate cases (#2666)
  • GLSupport: merge GLSLProgramManagerCommon::validateParam
  • RTSS: fix texturing when CookTorrance is active
  • Terrain: correctly forward visibility and query flags

v13.5.1

06 Nov 12:10
1d7d32c
Compare
Choose a tag to compare
  • Main
    • fix compilation for Real=double
    • RenderSystem - skip FFP texture settings when FFP is not supported
    • range loop refactoring
  • CMake
    • fix incomplete zlib update
    • only install samples.cfg, when installing the the samples
    • only reference sample resources, when we build the samples
  • RTSS
    • FFPTexturing - do not needlessly pass texture matrix
    • FFPTexturing - thoroughly validate tex coord settings
  • BSPSceneManager: Q3Shader - fix TEXGEN_ENVIRONMENT mapping
  • D3D11: improve error message for missing VertexElement
  • GL: match D3D9 on ENV_PLANAR behavior
  • Docs
    • improve cubic texture description in ogre script
    • improve env_map documentation

v13.5.0

29 Oct 14:49
Compare
Choose a tag to compare

Highlights

  • Implement Automatic Instancing
  • Add support for GPU bone to world transform
  • Non shadow-casting lights and PSSM integration
  • Use Vulkan Memory Allocator

What's Changed

  • Main
    • add option to use object space bones
    • AnimationState - use plain vector for BlendMask
    • AnimationTrack - add sanity assert for pose animation
    • DefaultDebugDrawer
      • fix scale being applied twice to axes
      • skip drawing root scene node
    • ETCCodec - fix crash when loading PKM files
    • fix LightAttenuationValue (#2569)
    • Image - make trivial getters inline
    • implement automatic SubMesh batching (SceneManager/ GpuProgram)
    • inject GlobalInstancingDeclaration in SceneManager instead of RS
    • InstanceBatchHW_VTF - range loop refactoring (#2612)
    • Instancing - do not override getNumWorldTransforms if not needed
    • make some error messages more specific
    • Math
      • assert that isNaN is potentially working
      • float is always sufficient to generate a random number
    • move OGRE_MAX_NUM_BONES to OgreConfig.h
    • Pass - hide _getBlendFlags
    • PixelBox - initialise all members
    • PixelFormat - fix wrong PF_ETC2_RGBA8 size calulations
    • PixelUtil - do not widen to size_t on return
    • RenderSystem - provide default dummy video modes
    • RibbonTrail - validate TrailLength
    • SceneManager - inline mWorldGeometryRenderQueue accessors
    • ShadowRenderer - do not create Materials that were never used
    • use diffuse alpha in DERIVED_AMBIENT_LIGHT_COLOUR
    • Zip - correctly forward filename to opened datastream
    • drop unused pieces of InstancedGeometry
    • get rid of internal SPFM_DELETE_T usages
    • correctly handle self-assignment for various classes
    • port compressed format loaders to new Codec API
    • add AbstractNode::getString convenience method
    • annotate code with override
    • range-for loop refactoring (#2545, #2546, #2547, #2549, #2577, #2583, #2594, #2605, #2608, #2617, #2623, #2627, #2572)
    • refactoring and some style fixing (#2580, #2543)
    • use make_shared with StringVector & FileInfoList
    • deprecate Image::getFileExtFromMagic
    • deprecate Math::calculateTangentSpaceVector
    • fully deprecate normalise_normals
    • call createMicrocode statically
    • BillboardChain - deprecate setDynamic in favour of setAutoUpdate
  • RTSS
    • add compatibility with automatic instancing
    • add flag for highp interpolation
    • add RenderState::getSubRenderState helper
    • always match VS to PS interface
    • CookTorrance
      • allow injecting UV coords
      • correct ambient and shadows
      • do not depend on PSSM for shadowFactor handling
      • use linear gamma & add PSSM_DEBUG
    • DualQuaternion - move more code to shader
    • fix transparency when using TVC_EMISSIVE
    • get rid of now trivial FFPRenderStateBuilder
    • GLSLES - force highp to avoid precision mismatch between VP/ FP
    • GLSLProgramWriter - fix UniformBlock indentation
    • HW Skinning
      • avoid passing ViewProjMatrix
      • take advantage of object space bone setting in main
      • unify implementations
      • improve parameter parsing
    • LayeredBlending - add string based blendMode & sourceModifier API
    • LinearSkinning - move more code to shader
    • make available SRS types more discoverable & unify documentation
    • NormalMap - move more computations to shaderlib
    • NormalMap - we must normalise tangents & normals in VS
    • per-pixel lighting - fix using PSSM3 with non casting lights
    • RenderState - add helper to add template SRS by type
    • replace FFPLib_Common by BuiltinFunctionAtom
    • simplify SGX_ApplyShadowFactor_Diffuse
    • deprecate SGScriptTranslator::getString
    • drop superfluous addError calls when parsing scripts
  • Terrain
    • factor out TerrainSurface.glsl
    • fix flipped eyeDir vector
    • fix precision issues on GLES2
    • make sure lod1RenderState gets params with FFP
    • MaterialGenerator - deprecate layerDecl.elements
    • use updateParams flow for LOD1 technique
    • we must normalise the incoming normal for constructing TBN
  • CI
    • update NDK to latest LTS
    • update to macos-11
    • update windows build to vs19
    • PIP: enable Vulkan on Windows & Linux
  • CMake: Install pkgconfig file with mingw toolchain
  • Java: disable more warnings for SWIG
  • Overlay: BorderPanel - size computations should always be in float
  • GLES2: EAGL - dynamically use GLES3 if possible
  • GL*: factor out applyGlobalInstancingDeclaration
  • GLSupport: allow using pre-GLVND setups again
  • GLSLang
    • fix static linking against the plugin
    • ignore warnings in upstream headers
  • ParticleFX: hide all symbols
  • PCZSceneManager - fix clearScene by using parent impl
  • Vulkan
    • add PF_R5G6B5 support
    • avoid VK_FORMAT_D32_SFLOAT_S8_UINT
    • correctly handle PF_DEPTH24_STENCIL8
    • do not pull vulkan headers into plugin
    • port to Vulkan Memory Allocator
    • use float for depth values as others
  • STBICodec - port to new Codec API
  • EXRCodec: port to new Codec API
  • FreeImageCodec: port to new Codec API
  • Docs
    • add DotScene to Manual
    • add rationale for OGRE_MAX_NUM_BONES
    • fix some typos
    • high level programs - refactor to include Vulkan GLSL usage
    • improve AutoConstantType documentation/ formatting
    • improve Instancing documentation
    • Renderable - document new getBonesUseObjectSpace behaviour
    • Tutorials - simplify the boostrap code
    • use the new SRS_ RTSS constants in sample code
  • Samples
    • add automatic HW Instancing
    • Browser - globally enable object space bones for testing
    • Compositor DoF - fix shader for GLES2
    • Context - use initApp on iOS too
    • fix building sample browser on OSX
    • fix too close near plane
    • InstancedViewport - fix vertex attributes to work with Vulkan
    • Instancing - slight cleanup of technique handling
    • RTSS - correct specular for cook torrance & point light tweaks
    • RTSS - replace vertex lighting by cook torrance
    • SegmentedLights - params are already in world space
    • ShaderSystem - fix layered blending demo
    • Terrain - disable anisotropic filtering on Android
    • hardcode CFBundleVersion for iOS in Info.plist
  • Tests
    • add KTX loading test
    • add Light AnimableValue test
    • also test PKM and ASTC loading
    • Context - copy core media on iOS as well
    • move PVR file loading to unit tests and run them on Linux
    • PlayPen - disable anisotropic filtering
    • TestContext - replace ad-hoc parsing of Video-Mode

Development is funded by your contributions

If your company uses Ogre, consider supporting its development in return:

v13.4.4

07 Aug 13:44
Compare
Choose a tag to compare
  • Main
    • some code cleanup (#2540, #2539)
    • clang-tidy to range-based for with some manual naming fixup
    • minor performance improvements
    • use make_shared where possible
  • GLSLang
    • correctly release delegate on destruction
    • fix linking and allow using Vulkan SDK on Ubuntu 22.04
  • Vulkan
    • correctly use getImageAspect everywhere
    • fix texAccessFlags in prepareForDownload
  • Docs: add Bullet component to Notes

v13.4.3

31 Jul 21:53
d4e92d7
Compare
Choose a tag to compare
  • Main
    • refactor code to C++11 style (#2524, #2532, #2533, #2534)
    • slightly clean-up PixelFormat conversions
    • Texture - fix off by one in num mipmaps in convertToImage (#2519)
  • ParticleFX: ColourInterpolatorAffector - set particle colour on init
  • Dependencies: fix relwithdebinfo bullet build on msvc
  • pkgconfig: dont hardcode boost and freeimage lib names (#2525)
  • RTSS: NormalMap - use non-normalised post-interpolation values for TBN
  • Samples: Bullet - show cursor (#2523)

v13.4.2

15 Jul 19:38
Compare
Choose a tag to compare
  • Main
    • Root - run destructor on MaterialManager before GpuProgramManager
    • StaticGeometry - logError if Root SceneNode is transformed
    • WorkQueue - fix logging
    • WorkQueue - sync response processing time limit doc and code
  • Terrain: generate normal and composite map material in one go
  • RTSS: simplify ProgramManager
  • Java & CSharp: link only used components libraries
  • PCZSceneManager
    • fix scaling of portal radius
    • slightly clean-up readme
  • GLSupport: Win32 - fix building with QUAD_BUFFER_STEREO
  • Docs
    • update list of components using pugixml
    • Make libxrandr a requirement for Ubuntu
  • Samples
    • PCZTest - reduce PCZSceneNode usage
    • ShaderSystem - fix crash on shutdown

v13.4.1

21 Jun 16:16
Compare
Choose a tag to compare
  • Main: BillboardChain - fix orientation when there is only one camera
  • SDK: also ship bullet headers
  • CMake: make bullet component self-contained for consuming projects
  • Docs
    • drop superfluous remarks annotations
    • make inline images legible in dark mode too

v13.4.0

07 Jun 00:02
Compare
Choose a tag to compare

Highlights

  • Add Bullet component based on BtOgre
  • add VET_INT_10_10_10_2_NORM
  • add basic support for joystick devices

What's Changed

  • Main
    • add ControllerReal typedef
    • add top-level aliases for material schemes e.g. MSN_DEFAULT
    • AutoParamDataSource - use lookRotation to get spotlight matrix
    • BillboardChain::Element - width and texCoord should always be float
    • EdgeListBuilder - improve asserts in addIndexData
    • Entity - drop useless extractTempBufferInfo indirection
    • factor out VertexData::_cloneRemovingBlendData so it can be shared
    • fix delayed loading of shadow caster material & add test
    • fixed incorrect handling of samplers as constants
    • fix StaticGeometry::setRenderingDistance
    • FocusedShadowCameraSetup - drop special mLightFrustumCamera
    • FrameTimeControllerValue - inline trivial functions
    • GpuProgramParams - validate named constant count
    • GpuSharedParameters - use template to avoid code duplication
    • HardwareBufferManager - devirtualise methods called in destructor
    • InstanceBatchHW - use correct HBU_CPU_TO_GPU
    • LightClippingInfo - clipPlanesValid should be a bool
    • Light - fix OGRE_NODELESS_POSITIONING typo
    • Math - fix noisy compiler warnings (#2463)
    • Mesh
      • add UserObjectBindings & merge PrefabLoader + PrefabFactory
      • check skeleton by pointer instead of by name
      • default AutoBuildEdgeLists to false
      • slightly refactor softwareVertexBlend
    • ParticleSystemRenderer - correctly deprecate ParticleVisualData
    • replace deprecated std::binary_function by lambda
    • Resource - _fireLoadingComplete parameter is unused
    • SceneManager
      • inline _populateLightList overload
      • shadow casting lights can be != shadow textures
    • ScriptTranslator
      • catch invalid multiple target_output usages
      • deprecate bool symbol
      • factor out safeSetConstant
      • make caster_ref fallback technique-specific
    • ShadowCameraSetup
      • do not re-derive orientation when possible
      • use default method to get ShadowMappingMatrix
    • Serializer - slight cleanup
    • ShadowRenderer - const correct sortLightsAffectingFrustum
    • simplify GpuProgramManager::createImpl
    • TangentSpaceCalc - dont discard existing vertex data
    • TempBlendedBufferInfo - handle additional attributes in pos buffer
    • Texture - unify validation of number of requested mips
    • use new HBU_* names in headers to improve documentation
    • VertexData - implement convertVertexElement
    • VertexData - simplify reorganiseBuffers
    • VertexElement - deprecate convertColourValue
    • VertexElement - deprecate getBestColourVertexElementType
    • Viewport - inline trivial member functions
    • Viewport - use TRect to store dimensions
    • WorkQueue - simplify WorkerFunc
  • CMake
    • fix setting of OGRE_NODE_INHERIT_TRANSFORM option
    • let CMake autodetect OSX_SYSROOT
    • Dependencies: update to latest releases
    • Dependencies: make sure we capture our self-build SDL2 on Linux
    • pkg-config: match cmake regarding include paths
    • Don't use sse on non-x86 architectures (#2444)
  • RTSS
    • CookTorrance - respect transparency and ambient light
    • fix getAutoConstantIntData for array types
    • PBR - iterate lights in shader to avoid redundant computations
    • PSSM - move ApplyShadowFactor to lighting stages as it should be
  • Bites
    • add basic support for joystick devices
    • ImGuiInputListener - finish port to event-based IO
    • correct check if a gamecontrollerdb.txt is loaded
  • SWIG: wrap BillboardChainElement
  • Overlay: update ImGui to 1.87
  • Terrain: fix getCastsShadows always being true and change default
  • GL: GpuProgram - drop duplicated fields
  • Vulkan: correctly check for RSC_USER_CLIP_PLANES
  • Metal: fix crash on shutdown from mDefaultVP/FP outliving their creator
  • D3D*: port to common isCompatible() method
  • D3D11
    • D3D11DeviceResourceManager - improve assert message
    • HLSL - simplify IA reflection handling
  • PCZSceneManager: fix named node registration in createSceneNode override
  • Assimp
    • explicitly give GenSmoothNormals precendence
    • fix string comparison when walking bones
  • Samples
    • add Bullet sample
    • Browsers - fix overflow of samples carousel
    • Python - add google colab compatible ipy notebook
  • Tools
    • clean up help CLI help strings
    • make use of Ogre::Root to reduce boilerplate code
    • XMLConverter - drop VET_COLOUR* parsing from CLI
    • MeshUpgrader: add option to pack normals and tangents as int_10_10_10_2
    • AssimpConverter: include plugins in RPATH, so Codec_Assimp is found
  • Docs
    • correct channel order of metal roughness params
    • improve FrameTimeControllerValue documentation
    • improve Hardaware Buffers documentation
    • improve Plugin documentation
    • merge getUserObjectBindings descriptions
    • MeshTools - update documentation and add AssimpConverter
    • minor fixes
    • shadows - small formatting fix
  • Tests: test PF_A2R10G10B10 packing/ unpacking

Development is funded by your contributions

If your company uses Ogre, consider supporting its development in return:

v13.3.4

02 Apr 16:55
Compare
Choose a tag to compare
  • Dependencies: update zlib to 1.2.12 due to CVE-2018-25032
  • Docs: minor fixes