Skip to content

Releases: OGRECave/ogre

v14.5.2

31 Jan 18:14

Choose a tag to compare

  • Main
    • Entity - only call computeBoneBoundingRadius() if enabling
    • Mesh - copy GPU buffer if necessary to calculate bone radius
  • CMake
    • Android - align libraries to 16k
    • update Android project templates
    • Update Freetype version to 2.14.1 (#3574)
    • update to assimp 6.0.3
  • Bites: Android - fix touch offset with hidden navbar
  • RTSS: CookTorrance - fix double gamma on ambient colour
  • Plugins: Assimp
    • fix MR map key for recent assimp
    • workaround webp extension mapping
  • GLSupport
    • Android - respect gamma param
    • Android - sync options with config dialog
    • Win32 - describe selected format like on EGL
    • Win32 - use wglChoosePixelFormat when possible
  • GL: HardwareBuffer - make shadow buffer if requested
  • GLES2
    • make sure srgb format is colour renderable
    • Texture - make sure we can generate mipmaps with gamma
  • D3D11: respect auto mip generation
  • Samples: fix texture array sample on GLES

v14.5.1

18 Jan 13:57

Choose a tag to compare

hotfix for python bindings

  • Bites: TrayManager - workaround issue with SWIG 4.4
  • Docs
    • Manual - improve Instancing documentation
    • update StaticGeometry documentation

v14.5.0

10 Jan 20:32

Choose a tag to compare

Highlights

  • Correct Colors: Automated Linear Workflow
  • Unifying Shader Precision: Relaxed Precision Support
  • multisampled MRT support on GL3/ GLES2 RenderSystems
  • Cg now supports HLSL parameter, for easier porting
  • Numerous underlying performance optimizations

Details in announcement post

What's Changed

  • Main
    • add support for multisampled textures
    • AutoParamDataSource - add fastpaths for Light arrays
    • clean RSC_RTT_ naming, deprecate unused flag
    • ColourValue - add gammaToLinear
    • Compositor - only swap on last consecutive target pass
    • DepthBuffer - deprecate changing poolId
    • GpuProgramParams - simplify _copySharedParamsToTargetParams
    • add GpuProgramParameters::setUseLinearColours
    • Pass - inline the trivial GpuProgram aliases
    • QueuedRenderableCollection - workaround crash on dead pass
    • RenderQueue - clean up material loading
    • RenderSystem::initialiseFromRenderSystemCapabilities is now optional
    • RenderSystem - use more specific depth pools
    • replace DepthBuffer::POOL_* by RBP_* flags
    • Resource - buffer a copy of ListenerList before iterating callbacks so it can be modified by the callbacks
    • Resource - fire preparingComplete() callback when preparing in load().
    • SceneManager
      • call _beginFrame before clearing
      • clean up destroySceneNode overloads
      • disable depth writing for sky box material as well
      • disable per-renderable lights by default
      • drop unused destroyShadowTextures()
      • more descriptive ShadowTexture naming
      • shadow textures should be always created
      • convert clear colour for HardwareGamma targets
    • Script - deprecate shared_param_named in favour of param_named
    • TextureShadowRenderer - notify SM about tex creation
    • TextureShadowRenderer - simplify NullShadowTexture creation
    • Viewport - deprecate clear()
    • Material: make recompile equivalent to unload
    • Light - default to quadratic spotlight falloff
  • CMake
    • comment out Cg on Win32, so SDK starts without Cg installed
    • comment out D3D9 on MSVC, so SDK starts without DX SDK installed
    • Dependencies: Upgrade SDL2 to 2.32.10 (#3482)
  • RTSS
    • add sampler param to metal_roughness
    • add tex_coord_set param to metal_roughness
    • annotate some calculations as highp
    • cloneShaderBasedTechniques - ensure prepare works
    • enable use relaxed precision on D3D11
    • implement uv mixing for FFP texturing
    • justify fixed reflectance
    • make uvmixing more customizable
    • PerPixelLighting - use highp for specular highlights
    • add FFP_PS_PBR_LIGHTING enum values
    • do alpha testing right after texturing
    • add macros to fully operate in linear colour mode
    • allow shaders to target a linear colour space for sRGB
  • UnifiedShader
    • allow relaxed precision on D3D11
    • only enable highp, when it is safe
    • refactor and document f32vecN
    • also use relaxed precision on Vulkan
  • Bites: add support for joysick buttons and joystick hat. (#3528)
  • MeshLOD: OutputProviderBuffer - fix segfault
  • Overlay: relax Z-Ordering to improve batching
  • HighPy: allow using entities
  • Paging: Prevent page unload crash
  • Bullet
    • KinematicMotionSimple: provide more information about body status
    • Bullet: build without "_Debug" postfix so find_package finds it (#3475)
    • Remove heightmap colliders from visualization
    • Support manual narrow phase for ghost objects
    • track floor
  • Terrain
    • fix D3D9 error when rendering the composite map
    • get rid of WorkQueue::Request wrapping
    • use future instead of a spinlock to wait for derived data
    • respect linear colours RTSS setting
    • enable composite map gamma if needed
  • Codecs
    • STBI - fix buffer size when conversion is needed for encode
    • RsImage - add webp to supported formats
    • Assimp
      • correctly read UV >0 data
      • support multiple UV layers (#3468)
  • DotSceneLoader
    • implement prefix to load scene more than once
    • allow working without RenderSystem running
  • Cg:
    • allow processing preprocessor_defines
    • correctly map ps_2_x
    • handle "target" as an alias to "profiles"
  • GLSupport
    • add getActiveRenderTarget & bindRenderTarget
    • bindSurface - correctly restore previous target
    • drop destroyRenderWindow
    • replace RBKey by HashCombine
    • unify GLFBORenderTexture
    • unify GLMultiRenderTarget
    • Win32 - do not override mDepthBufferPoolId
  • GL*
    • replace local msaa renderbuffer by respecting poolId
    • use lazy FBO creation to source fsaa from target surface
    • Window - use RBP_NONE instead of a dummy depth buffer
    • drop misleading comments
  • GL3Plus
    • autodetect shader sampler bindings
    • use delayed shared_params binding
    • do not create empty HW shared_params
    • GLSL - respect shader defined buffer binding points
    • allow multisampled MRTs
  • GLES2
    • allow multisampled MRTs
    • renderbuffers with different resolutions are allowed with 3.0
  • GLES2/ GL3+: invalidate render buffers when possible
  • GL: avoid warnings when using Copying and PBuffer RTT
  • D3D11
    • use delayed shared_params creation
    • HLSL - correctly handle MIN16FLOAT
    • HLSL - fixed bad dealloc (#3451)
    • reapply scissor rects, when switching render target
  • Vulkan
    • drop unused textype to view mapping
    • fix Window resizing on Xlib
    • Window - fix hwGamma not being properly reported
  • Docs
    • fix PixelFormat documentation
    • improve WorkQueue documentation
    • RenderTarget - update effects of swapBuffers
    • update destroySceneNode docs
  • Samples
    • allow using NightVision and OldTV as hlsl
    • clean-up bump mapping materials
    • clean up Examples/Athene/NormalMapped mat
    • CSM - allow running as HLSL
    • Deferred - fix GLES precision issues
    • Deferred - fixup after using unified shader
    • Deferred - workaround for deleted passes in render queue
    • drop unused StdQuad_Tex3/4
    • fix LightShafts crashing
    • GaussianSplatting - use generic sorting
    • port HDR to unified shader
    • SSAO - merge HLSL and Cg shaders
  • Tests
    • PlayPen_VertexTexture does not run on glsles
    • convert NonUniqueResourceNames VTest to Unit Test
    • convert SerialisedColour VTest to Unit Test
    • VTests
      • always use OgreVTests as app name
      • ensure MSN_SHADERGEN is used when needed

Development is funded by your contributions

If you use Ogre commercially, consider supporting its development in return:

v14.4.1

05 Sep 16:27

Choose a tag to compare

  • Main
    • add missing include in OgreSubEntity
    • Bitwise - do not generate nan for bits=0
    • fix windows compile warnings
    • Matrix3 - fix parameter names of EulerAngles conversions
  • OgreBullet
    • handle CF_NO_CONTACT_RESPONSE setting
    • initialize mMaxPenetrationDepth to zero
  • RTSS: fix windows compile warnings
  • DotSceneLoader - only call setInitialState when needed
  • Samples
    • exclude PerlinNoiseTerrainGenerator if terrain component is not built
    • Water - avoid resetToInitialState

v14.4.0

26 Jul 11:09
824dabd

Choose a tag to compare

Highlights

  • Full Layered RenderTarget Support
  • Initial Icon Font Support
  • Improved Bullet Component
  • New Bone debug drawing

Details in announcement post

What's Changed

  • Main
    • add ACT_WORLDVIEWPROJ_MATRIX_ARRAY & setVPRTCameras
    • add MSN_SHADOWCASTER and use it for caster instancing data
    • add RSC_VP_RT_INDEX_ANY_SHADER
    • add support for 2darray and cube shadow samplers
    • add TU_TARGET_ALL_LAYERS
    • allow forcing DXT decompression via Codec::setParameter (#3291)
    • Android - fix segfault if LogManager singleton already exists (#3423)
    • AnimationTrack - use signed comparison to avoid overflow (#3359)
    • apply global instancing to all scene objects
    • AutoParamDataSource - allow injecting cameras
    • Bone: inline some trivial getters
    • Compositor
      • add 2d_array texture support
      • factor out common RT creation
      • mention compositor name in warning
    • CompositorInstace - drop internal getTargetForTex
    • DefaultDebugDrawer - improve bone drawing
    • Entity - simplify Bone iteration in getBoundingBox
    • fix PF_R8G8 mask (#3323)
    • Frustum - handle manual extents and nearPlane change
    • handle ShadowTechnique in SceneManger
    • HardwarePixelBuffer::getRenderTarget - const correctness
    • HardwarePixelBuffer::getRenderTarget - use assert for range check
    • Image - use malloc & free to avoid asan warnings
    • improve naming of internal rendertextures
    • ManualObject - do not duplicate material name & group
    • ManualObject - fix auto instancing interop
    • move splitOptions to SceneManager
    • MultiRenderTarget - devirtualize bindSurface
    • NameGenerator - do not use StringStream
    • drop some unused sstream includes
    • new scheme based global instancing API
    • ParticleSystem - reorder base classes and fix casts
    • range loop refactoring (#3373)
    • re-group shadow documentation in SceneManager
    • RenderTarget - devirtualise detachDepthBuffer
    • RenderTarget - devirtualise trivial API
    • SceneManager - add setShadowTextureCompositor
    • SceneManager - const correctness
    • SceneManager - reuse resolveShadowTexture
    • ScriptCompiler
      • add getSourceFile
      • add simplified addError API
      • add simplified ScriptProperty API
      • fix build with DEBUG_AST
      • prefer 2d_array spelling
    • ScriptTranslator - a property cannot have no values
    • ScriptTranslator - simplify getValue
    • ShadowRenderer
      • add support for layered textures
      • add support for TU_TARGET_ALL_LAYERS
      • split out TextureShadowRenderer from ShadowRenderer
      • split shadow renderers into separate cpps
    • ShadowRenderer needs export for MinGW
    • simplify Node constructors
    • Skeleton
      • derive nextAutoHandle from boneList
      • devirtualise and inline trivial functions
      • ensure all Bones are named
    • SkeletonInstance - TagPoints dont need a handle
    • SkeletonSerializer - use range based for
    • StencilShadowRenderer - programs already use the shadow colour
    • store shadow colour in AutoParamDataSource
    • StreamSerialiser - initialise headerid
    • Texture - add API for unified cubemap and 2D array access
    • Texture - factor out common createSurfaceList
    • transparents are rendered always after shadowing
    • use constexpr for static Vector constants (#3315)
    • use inline methods for passing geometry counters
    • Use constexpr for static colour constants
    • use StringConverter where applicable to join StringVector
    • VertexIndexData - fix some Wshorten-64-to-32
    • Viewport - add Rect based overloads & regroup methods
    • ZipArchive - propagate read only flag to MemoryDataStream
    • deprecations
      • Root - deprecate autoCreateWindow
      • deprecate SceneManager::getShadowCasterBoundsInfo
      • Camera - deprecate setWindow
  • CMake
    • add RsImage codec to feature summary
    • fix feature summary for Qt6
    • android: update templates to work on recent android APIs
    • Dependencies: add workaround for CMake 4 havoc
    • Dependencies: update Assimp
    • Dependencies: update SDL2
  • RTSS
    • add SPS_LAYER
    • disable mip filtering on shadowmaps
    • enable SM4.1 if supported
    • handle texture2DArray samplers
    • NormalMap - f suffix not allowed with ES2
    • Parameter::Content is not exhaustive - pass it as int
    • port to new ScriptProperty API
    • PSSM - allow using array shadow textures
    • PSSM - use TEXTURE_WORLDVIEWPROJ_MATRIX_ARRAY
    • ShaderGenerator - drop unused FileSystemLayer member
    • ShaderGenerator - factor out getScheme
    • use the list of supported techniques
    • WBOIT & IBL require ES3
  • SWIG
    • ignore deprecated API
    • Overlay - instantiate ChildMap (#3285)
    • wrap CompositorLogic (#3326)
    • wrap RegionMap, LODBucketList, MaterialBucketMap and GeometryBucketList
    • wrap TagPoint
    • HighPy: allow Path in user_resource_locations
  • Overlay
    • BorderPanelOverlayElement - correctly initialize mBorderUV
    • Font - add merge_fonts property
    • Font - fix stbtt build
    • ImGui - change texture sampler to clamp
    • ImGui - preserve alpha in output buffer
    • port to new ScriptProperty API
    • run on preRenderQueues
    • update imgui to 1.91.9b
  • OgreBullet
    • Add KinematicMotionSimple helper class
    • Allow attaching externally created objects
    • create kinematic RigidBody helper function
    • Support btCompound shape; collider creation
    • fixed wrong variable being used in onTick (#3322)
    • Implement height field terrain collider for terrain (#3392)
  • Terrain
    • disable mip filtering on textures without any
    • drop ios saving hack
    • drop unused NameGenerators
    • generate mipmaps on composite map
    • TerrainSlotMap: add SWIG bindings (#3298)
    • use scissor to limit compRTT update and disable depth
  • UnifiedShader
    • avoid introducing shadow2D variants
    • fall back to VPOS on HLSL3
    • HLSL_SM4Support - use texSample overloads for SM4
    • GL3Support - always use UBOs with GLSLang
  • Paging: drop ios saving hack from Page
  • PCZ: range loop refactoring
  • Plugins
    • Assimp
      • create skeleton in the correct group
      • try to detect material transparency
      • add support for GLTF2 alpha MASK & BLEND
      • let Ogre do the bone counting
    • RsImage - update image-rs
  • GL*
    • dont pass GLFBOManager around - it is a singleton
    • dont store RTT manager twice
  • GL3Plus
    • fix binding TEXTURE_2D_ARRAY to FBO
    • drop unused mTextureTypes
    • respect attachment type for cube maps
  • D3D11
    • add _createShared2DTex() for WPF interop
    • fix rendering to a slice of a pf_depth 2d_array
    • RenderTexture - ignore zoffset if we are rendering to all layers
    • set the correct mip level for rendertargets
    • Texture - fix DDS mipmap truncation issue (#3290)
  • Vulkan
    • fix blitFromMemory for non consecutive src
    • handle TU_TARGET_ALL_LAYERS
    • RenderPassDescriptor - correctly handle mSlice
    • RenderPassDescriptor - fix validation errors
    • Texture - use getNumLayers from parent class
    • VulkanRenderTexture - treat zoffset and face the same
  • GL: GLTextureBuffer - drop unused getRenderTarget overload
  • Tests
    • upgrade bundled gtest
    • extend tests to XML to mesh conversion
    • fix line endings of testdata
  • Tools
    • XMLConverter
      • allow using material multiple times in XML
      • make bone id optional in XML
      • use range based loop for bone iteration
    • AssimpConverter
      • add resource location for multipart files
      • correctly resolve bundle path
      • dont meddle with rpath
  • Docs:
    • 14-Notes: describe layered shadow samplers
    • 14-Notes: add compositor support for 2d_array textures
    • 14-Notes: add VPRT support
    • add HighPy section to Python tutorial
    • GLSL - improve binding attributes and samplers section
    • Manual - improve Material object documentation
    • improve README
  • Samples
    • fix some mipmap incomplete cases with GLES2
    • InstancedViewport - allow rendering to layered target
    • InstancedViewports - refactor to work with Cameras
    • range loop refactoring (#3366)
    • Re-add Ocean.controls for Ocean sample (#3421)
    • ShaderSystem - drop directional light flare
    • ShaderSystem - minor cleanup
    • ShaderSystem - showcase single pass PSSM3
    • ShaderSystem - use unlit caster for D3D11
    • Terrain - fix terrain saving
    • Transparency - do not require WBOIT to run

Development is funded by your contributions

If you use Ogre commercially, consider supporting its development in return:

v14.3.4

02 Feb 15:00

Choose a tag to compare

  • Main: Texture::convertToImage - fix mipmaps (#3282)
  • SWIG: fix ImGui bindings for C# and Java
  • Samples
    • Csharp - fix winforms sample
    • get shadergenerator from singleton

v14.3.3

23 Jan 18:29

Choose a tag to compare

  • Main: range loop refactoring (#3272)
  • CMake
    • disable PDB installation on static build
    • update SDL2 to 2.30.11
  • RTSS: CookTorrance - fix using alpha from texture
  • Docs
    • Manual - add note about vs_2_0 aliasing on D3D11
    • Manual - elaborate assembler shader syntax usage
  • Tests: range loop refactoring and change raw pointer to smart pointer (#3271)

v14.3.2

25 Nov 15:52

Choose a tag to compare

  • Main: add debug build guard on Ogre::Root
  • MinGW - drop some hardcoded flags
  • SWIG: fix compilation with swig 4.3.0
  • Overlay
    • Font - simplify GlyphInfo calculation
    • TextArea - simplify glyph positioning
  • Csharp: correctly wrap getCustomAttribute output *void
  • D3D11: silence null conversion warnings
  • D3D9: GpuProgram - dont use deprecated openResource
  • GLSLang: Fix build when OSDependent library is missing. (#3249)
  • GLSupport: OSX - add override annotations
  • Metal: add override annotations
  • Tests: slightly simplify ImageValidator
  • Samples: allow gaussiansplat on GLSL

v14.3.1

22 Oct 22:57

Choose a tag to compare

  • Main
    • Animation - fix crash w/o keyframes on libc++ (#3237)
    • ScriptCompiler - pass on variables as names
  • CMake: add deprecation warnings to plugins
  • Overlay: Font - report unsupported parameter
  • Plugins: RsImage - expose *.hdr support
  • Plugins: STBI - update stb_image
  • GLSupport: Android - add currentEGLSurface misc param (#3236)
  • Docs
    • fix some minor doxygen warnings
    • Manual - improve fontdef documentation
    • Manual - move multi-module shaders to GLSL section
    • Material - fix invalid references
    • recent doxygen does not like _ in labels any more
    • Tutorial1 - reference gltut for quaternions
    • update BuildingOgre
    • D3D9: fix documentatuon of _cleanupDepthBuffers
  • Samples: Browser - log if plugin is not a sample

v14.3.0

22 Sep 13:27

Choose a tag to compare

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: