Ogre 3D v1.12.9 Release Notes

Release Date: 2020-09-20 // about 1 year ago
  • highlight: merge ogre-assimp as Codec_Assimp and OgreAssimpConverter Tool

    • Main

      • 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
    • 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