Releases: OGRECave/ogre
Releases · OGRECave/ogre
v14.5.2
- 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
v14.5.0
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
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
- 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
Highlights
- Full Layered RenderTarget Support
- Initial Icon Font Support
- Improved Bullet Component
- New Bone debug drawing
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
- 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
- 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
- Assimp
- 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
- XMLConverter
- 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
v14.3.3
- 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
- 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
- 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
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:
