Ogre 3D v1.12.9 Release Notes
Release Date: 2020-09-20 // about 4 years ago-
highlight: merge ogre-assimp as
Codec_Assimp
andOgreAssimpConverter
ToolMain
- Any - enable implicit conversion constructor following std::any
- Billboard - inline trivial getters & setters
- BillboardParticleRenderer - inline facade methods
- BillboardSet - avoid segfault if MaterialPtr is NULL
- BillboardSet - inline and devirtualise trivial getters/ setters
- BillboardSet - simplify per Billboard property handling
- cleaned definition to fix build for macOS on ARM64
- clean-up/ refactor HBU flags
- Codec - refactor API to make it generally usable
- Camera - use inherited mManager property instead of duplicating
- deprecate ParticleVisualData
- deprecate Root::convertColourValue
- deprecate SceneLoaderManager API in favor of new Codec API
- HighLevelGpuProgramManager::isLanguageSupported - add const
- ManualObject - allow using transparent pass with detached MO
- Mesh - introduce MeshCodec indirection to allow different formats
- MovableObjectFactory - provide default destroyInstance impl
- ParticleEmitter - use inherited Particle pos
- ParticleSystem::clear - do not leak emitters into free list
- ParticleSystem - set owner on creation instead of status change
- ScriptTranslator - allow multi-language programs
- Serializer - const correctness
- ShadowRenderer - fix FT_MIP setting being overwritten
- StringUtil.normalizeFilePath - properly handle absolute unix paths
- Swig - extend PixelBox by method returning data as void pointer (#1674)
- UnifiedShader - add texture1D alias for HLSL
- use new HBU flags for code appearing in docs
- Make resource paths relative to resources.cfg-location
- use mesh provided HardwareBufferManager to create hardware buffers
- unify debug drawing in the DefaultDebugDrawer class
Bites
- use new logo in GLX config dialog
- use new logo in Win32 config dialog
- Add OGRE_CONFIG_DIR envvar
โ RTSS: AlphaTest - pass is a reserved keyword in HLSL
Overlay
- Font - improve freetype related error messages
- update imgui to 1.77
SWIG
- enable imgui with C# and Java as well
- export LogListener
- Overlay - add workaround for setting DisplayString parameters
Terrain
- simplify - blendmap format is always PF_BYTE_RGBA
- use OgreUnifiedShader for shader generation
GL*: properly translate HBU setting
D3D11
- HardwarePixelBuffer - properly use staging buffers
- properly use HBU setting instead of abusing systemMemory flag
- re-use shadow buffer for temporary staging
D3D9
- auto-disable FFP fog, when fragment shader is present
- drop D3DPOOL_MANAGED for buffers & discard HBU_DETAIL_DISCARDABLE
- properly respect HBU_CPU_ONLY setting
Emscripten
- avoid needless switchFullScreen call
- load RenderSystem settings from ogre.cfg
- Fixes issue preventing use of latest emscripten versions (#1698)
๐ Docs
- make sure per-component docs are correctly picked up by doxygen
- manual - bring hardware buffer section up to date
- merge cpp and manual docs of VertexData
- RTSS - add note about automatic shader re-generation
Samples
- ImGui - fix "NewFrameSanityChecks(): Assertion" again
- merge GLSL150 and GLSLES shaders that all were GLSL100
- PBS - use OgreUnifiedShader to make it HLSL compatible
- redeclare Cg shaders as HLSL
- SdkSample - use unique_ptr to manage mControls
โ Tests: allow RTSS to pass TextureShadowsTransparentCaster VTest
Tools: XMLConverter - createOrRetrieve Material
Previous changes from v1.12.8
-
Main
- update ShadowTextureConfig with actually chosen texture format
- add RSC_TEXTURE_2D_ARRAY and fix array texture detection/ handling
- add OgreUnifiedShader.h and unify ShadowVolume shaders
- HighLevelGpuProgram - correctly resolve #include in #include
- pass native shader version to shaders as e.g. OGRE_HLSL=4
- ShadowRenderer - improve default caster material for PF_DEPTH use
- ShadowRenderer - handle dynamically changing RTSS caster materials
- ASTCCodec - fix typo in validating blockDims
- deprecate shadow_receiver_*_program_ref
- document the current lighting and material model
- fix RENDER_QUEUE_MAX being treated as RENDER_QUEUE_COUNT
- HardwareBuffer - guard lock usage with runtime asserts
- MaterialSerializer - escape special chars in material attributes
- Material - turn isManual notice into warning
- Pass - hard deprecate setShadow*Program
- unify and deprecate RenderSystem::_createRenderWindows
- unify RenderSystem::_createRenderWindow checks & log output
RTSS
- include OgreUnifiedShader.h unconditionally
- always write GLSL types - will be handled by UnifiedShader defines
- HLSL - support Shadow & Array samplers
- PSSM - slightly refactor shader invocation
- PSSM - use 4 taps for HW PCF too, configurable split count
- TextureAtlas - GLSLES compatibility
- unify ShaderLib as GLSL and improve OgreUnifiedShader.h
- use #include based dependency resolution for GLSLES as well
Bites: respect selected monitor, when creating SDL window
Overlay: use cmake to download imgui instead of git submodule
SWIG: add read access to elements of Matrix4 (#1608)
๐ DotSceneLoader: appease unique_ptr destructor when building w/o Terrain
๐ Tools: simplify argument parsing & use logError for error reporting
Python
- allow using buffer types instead of raw pointers
- allow using sequences instead of Vector and ColourValaue
D3D11 & D3D9
- use sane fallback if no "target" is set
- use sane fallback format for PF_DEPTH*
D3D11
- fix HRESULT formatting in exception description
- fix wrong d3dcompiler version, when compiled with MinGW 9.3
- introduce OGRE_CHECK_DX_ERROR macro to reduce boilerplate code
- PF_DEPTH texture support
- reversed-depth fixes
๐ Docs
- add citation for Terrain LOD algorithm
- disable inlining inherited members
- fix Pass references in ACT_SURFACE_ALPHA_REJECTION_VALUE docstring
- fix warnings uncovered by doxygen v1.8.17
- hide friend compounds
- hide ogre internal defines from function signatures
- Manual - MeshUpgrades does LOD, not XMLConverter
- move ComPtr to D3D11 module
- specify unit of "rotate" in material scripts
- use named member groups to improve readability
Emscripten
- implement graceful degradation from WebGL2 to WebGL1
- CMake: precompiled headers do not work on emscripten
GL*: use sane fallback format for PF_DEPTH*
GLES2
- enable PF_DEPTH16 with WebGL2
- ignore GL_OES_vertex_array_object on emscripten
๐ GLSupport
- make
__VERSION__
available in preprocessor - CPreprocessor: forbid numerical defines
- make
Samples
- Browser - do not add Trays UI to Unit Tests
- clean up Bumpmapping sample
- Csharp - add Windows.Forms integration sample
- Emscripten - add PSSM/shadow_caster material
- LightShafts - port from Cg to OgreUnifiedShader
- request PF_DEPTH for shadow mapping, where possible
- ShaderSystem - fix LayeredBlending controls
โ Tests: clean up TextureShadowsTransparentCaster VTest