v14.3.0
Highlights
- 3D Gaussian Splatting and VET_HALF support
- Mesh Shader Support
- Wayland Support on Linux
- HighPy module for Python
What's Changed
- Main
- add support for Mesh & Task shaders
- add RSC_VERTEX_FORMAT_16X3
- add OGRE_NATIVE_GLSL_VERSION_DIRECTIVE builtin define
- UnifiedShader: add dFdx, dFdy
- AutoParamDataSource - always use the real view matrix
- Bitwise - use floatToHalf from meshoptimizer
- Compositor
- allow textures to set a specific FSAA level
- ensure unused global textures are setup
- simplify local Texture creation
- range loop refactoring (#3169)
- simplify creation of global textures
- CompositionTechniqueTranslator - improve error message
- do not throw when parsing an invalid .compositor
- EdgeListBuilder - hide geometryLess
- EdgeListBuilder - use fixed size types as stored on disk
- factor out common D3D11 and GL3Plus UBO code
- fix crash in the ControllerManager::updateAllControllerswhen mControllers is changed while iterating over it (#3216)
- Frustum - float is sufficient for near and far distances
- Frustum - getViewMatrix should be virtual
- GpuProgramParameters - assert correct constant type
- GpuProgramParameters - setNamedConstant only handles float
- HardwareOcclusionQuery - add more descriptive API
- HardwarePixelBuffer - factor out getNameForRenderTexture
- HardwareVertexBuffer - add VET_HALF support
- Image - derive type from stream name
- improve naming scheme of compositor textures
- introduce OgreGpuEventScope macro
- MaterialSerializer - further reduce TextureEffect usage
- MaterialSerializer - reduce TextureEffect usage
- MeshSerializerImpl - fix calcMorphKeyframeSize
- OgreAnimation - range loop refactoring (#3225)
- Pass - alias compute shader to vertex shader storage
- QueuedRenderableCollection - cluster instanced groups
- register SceneManager as container of its animations
- RenderTarget - unconditionally add profiling annotations
- Revert "Main: RenderSystem - simplifying remove render targets (#2524)"
- RenderWindow - provide default resize impl
- RGM - warn if we are skipping encounter a duplicated resource
- SceneManager
- allow toggling per-renderable light lists
- annotate mesh name in instance batch
- drop _renderVisibleObjects indirection
- implement the AnimationContainer API
- simplify sky rendering API
- ShadowCaster - add default implementations and devirtualise them
- SubEntity - inline and const correct getSubMesh
- Texture - rename TU_NOT_SRV to TU_NOT_SAMPLED
- TextureUnitState
- add getProjectiveTexturingFrustum
- alias EnvMapType to TexCoordCalcMethod
- refactor internal effects mapping
- texture matrix will be always float
- update StableHeaders
- VertexData
- convertVertexElement allow specifying index
- implement float3 to half3 conversion
- implement paddig 16x3 formats to 16x4
- slightly refactor spliceElement
- VertexElement - handle VET_HALF in multiplyTypeCount
- Deprecations
- un-deprecate 1 and 3 component short VET
- deprecate RSC_VERTEX_TEXTURE_FETCH
- deprecate StringConverter::isNumber
- SubEntity - deprecate IndexStart & IndexEnd
- Build
- Bites
- Trays - Slider value can be always float
- Check whether SDL supports Wayland and X11
- RTSS
- SWIG
- correctly wrap HardwareOcclusionQuery::pullOcclusionQuery
- Python - allow releasing the GIL during swapBuffers
- Python: add HighPy module
- Volume
- MeshBuilder - index is always uint32
- MeshBuilder - use merge for bbox computation
- range loop refactoring
- hide MCTables
- Terrain: range loop refactoring
- Assimp
- disable lighting, if we have no normals
- fix loading embedded textures in FBX
- allow passing options via UserAny
- do not blow up aabb
- GLSLang
- isSupported - correctly consider capabilites
- SSBOs in Mesh shaders dont have to be shared params
- fix linking on ubuntu 22.04
- GLSupport
- GL*:
- HardwareOcclusionQuery - allow calling methods out of order
- Prevent using a shared FBO renderbuffer if not clearing (#3168)
- GL3Plus
- add missing mapping for task shaders
- bind vertex buffers as SSBOs for mesh shaders
- do pixel-wise occlusion queries
- GLSLShader - need padding when using UBOs
- ignore our own debug markers
- jump over #extension when patching SSO block
- offset mesh SSBO binding by 3
- remove commented out code for image bind
- use global instead of per shader UBOs
- GL
- add VET_HALF support
- hide GLSLProgramFactory forward declaration
- D3D*: HardwareOcclusionQuery - retain LastQuerysPixelcount
- D3D9: drop unused mLights
- D3D11
- drop unused str to VES mapping
- Fix crash when re-preparing a HLSL program
- use global instead of per shader cbuffers
- Vulkan
- add adjacency topology mappings
- allow using VULKAN_SDK on all platforms
- complete VET mappings
- enable UBOs for mesh shaders
- fix indexBuffer check
- fix window creation on non-wayland
- update volk to get mesh shader ext
- move USE_VALIDATION_LAYERS define to header
- PCZSceneManager: fixed AntiPortals not being deleted (#3134)
- Tools
- AssimpConverter
- fix HBM destruction order
- stop linking against Codec_Assimp
- XMLConverter
- add VET_HALF support
- fix HBM destruction order
- handle VET_HALF positions
- simplify texcoord processing
- AssimpConverter
- Docs
- 14-Notes - document new 14.3 features
- add diagram for the animation system
- add mesh shader and show UBO and SSBO usage in sample
- describe UBO usage on GLSL
- improve formatting of Linux dependency install
- include Python component
- Manual - improve Animation section
- fix addResourceLocation documentation
- Viewport - fix docs reference & formatting
- Animation - fix docs formatting
- suppress some false doxygen warnings
- Tutorials: update CMakeLists.txt (#3152)
- update AUTHORS
- only include main RenderSystem headers
- Samples
- add gaussian splatting sample
- Media
- drop some unused shaders
- drop unused material
- merge parallax_occlusion into OffsetMapping.material
- merge single material files into Examples.material
- move pose & morph animation test materials to Tests
- move some materials to Tests
- split out ShowVertexAttributes.material
- Lighting - refactor occlusion query code
- Lighting - reference materials by ptr
- standard shadow caster is sufficient
- Terrain - fix invalid config when switching shadow types
- use modern controller creation API
- use RTSS to show normals
- add category for shader samples & add mesh shader sample
- Tests: fix SwizzleGP for GL1
Development is funded by your contributions
If your company uses Ogre, consider supporting its development in return: