Skip to content

v14.3.0

Compare
Choose a tag to compare
@paroj paroj released this 22 Sep 13:27
· 36 commits to master since this release

Highlights

  • 3D Gaussian Splatting and VET_HALF support
  • Mesh Shader Support
  • Wayland Support on Linux
  • HighPy module for Python

Details in announcement post

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
    • Do minor changes to cmake files
    • Delete Other/VC7_AppWizard.msi (#3150)
    • Add missing OGRE-BitesQt pkgconfig file
    • Moves package-config stuff to InstallResources.cmake.
    • Dependencies
      • update assimp to 5.4.3
      • updated sdl to last version (#3151)
      • update imgui to 1.91.2
      • CI: update ubuntu to 22.04
  • Bites
    • Trays - Slider value can be always float
    • Check whether SDL supports Wayland and X11
  • RTSS
    • also enable specular lighting with TVC_SPECULAR (#3155)
    • merge GLSLES into GLSL program writer
    • range loop refactoring (#3167)
  • 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
    • add Wayland support (#3142)
    • Emscripten - fix contextXCallback declaration (#3210)
    • Do not terminate uninitialized EGL contexts
    • Do not use EGL_CHECK_ERROR after eglCreateContext
  • 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
  • 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: