Skip to content

Releases: OGRECave/ogre

v14.1.1

26 Oct 19:08
Compare
Choose a tag to compare
  • Main: remove some deprecation warnings
  • Overlay: Font - handle premult alpha via antialias_colour in material
  • RTSS: switch to a unified program processor
  • Terrain: range loop factoring (#2945)
  • MeshLod: silence memcpy warning on GCC
  • Android: update to AGP 7.4.2 to work with latest android studio
  • GL*: range loop refactoring (#2948)
  • Metal: GpuProgram - entrypoint cannot be main & some robustness
  • Vulkan: range loop refactoring (#2947, #2959)
  • Docs: document OgreImGUIOverlay

v14.1.0

12 Sep 22:19
3f0a656
Compare
Choose a tag to compare

Highlights

  • Main: added support for rectangular area lights
  • Overlay: correctly load space width from font
  • RTSS: handle multiple shadow casting lights

Details in announcement post

What's Changed

  • Main
    • add ACT_MATERIAL_LOD_INDEX
    • add support for rectangular area lights
    • Entity - drop unused mMaterialLodFactorTransformed
    • fix processMainThreadTasks() waiting logic
    • Material LOD should work regardless of OGRE_NO_MESHLOD
    • Mesh/ SubMesh - add convenience resetVertexData & createVertexData
    • move mMaterialLodIndex to Renderable
    • ParticleSystem - do not track Affectors and Emitters in Factories
    • ShadowCamera - treat rectlights as spotlights
  • CMake
    • CMAKE_CL_64 is deprecated and only works with MSVC (#2922)
    • update zlib to version 1.3 and use https instead of http URL (#2921)
  • RTSS
    • add support for rectangular area lights
    • allow creating local array variables
    • PSSM - fix parsing parameters from script
    • PSSM - correctly handle color shadows when PSSM is off
    • PSSM - use shared, script-defined shadow sampler
    • range loop refactoring (#2929, #2931, #2934, #2937)
    • ShadowMapping - handle multiple shadow casting lights
  • Overlay
    • correctly load space width from font
    • ImGui - respect ogre default codepoint range
    • range loop refactoring (#2919)
    • TextArea - draw missing space & deprecate space_width property
    • update to imgui 1.89.8
  • SWIG
    • ImGui - correctly wrap Checkbox
    • ImGui - enable float[2] float[3] float[4] paramters via ImVec4
    • Python
      • auto convert Ogre.Degree to Radian parameter
      • workaround issue with cmake & manylinux (#2938)
      • full sequence protocol for Vector, Quaternion and ColourValue
  • Terrain: range loop refactoring (#2940)
  • Overlay/ Bites: range loop refactoring (#2908)
  • GLSupport: OSX - throw on broken createNewWindow code path
  • Octree - drop unused _alertVisibleObjects
  • Assimp
    • fix animations bone handle (#2930)
    • we must use an index buffer due to the triangulate step
  • Docs
    • 14-Notes - mention CollisionWorld
    • fix out-of-date Dear ImGui link
    • update 14 notes
    • update basic tutorial2
  • Samples
    • add RectLight sample
    • Shadows - use the RTSS to generate depth shadow shaders
    • switch to multi- shadowlight RTSS shaders where applicable

Development is funded by your contributions

If your company uses Ogre, consider supporting its development in return:

v14.0.1

18 Jul 22:35
Compare
Choose a tag to compare
  • Main
    • Entity - use correct material LOD idx bounds
    • fix warnings with OGRE_NO_MESHLOD
    • range loop refactoring (#2894)
    • ScriptTranslator - warn on deprecated lod_strategy names
  • MeshLOD: fix build without precompiled headers
  • Cg: define OGRE_VERTEX_SHADER for OgreUnifiedShader
  • Tools, Tests, Samples: fix build without MeshLOD
  • Docs
    • clarify using Overlays from .overlay files
    • clean up lod_strategy formatting
    • do not use the deprecated "asm" syntax
    • expand API documentation for getByName (#2893)
    • fix shadow tutorial code example (#2892)
    • list possible lod_strategy values and document lod_values fallback
    • update scripting manual (#2895)
  • Samples
    • clean up Isosurf
    • IsoSurf - also use unified VS & FS for Cg
    • IsoSurf - merge HLSL and GLSL VS & FS

v14.0.0

08 Jul 16:04
Compare
Choose a tag to compare

Highlights

  • switched WorkQueue to a Task-based API
  • There is a render queue dedicated to Transparent objects
  • RTSS can handle light type changes without shader recompilation

See New and Noteworthy for a detailed explanation

What's Changed

  • Main
    • add OGRE_DEPRECATED to getAnimationStateIterator
    • allow parallel install of multiple versions via versioned OGRE dir
    • be slightly more strict regarding HardwareBufferUsage
    • AnimationState - make _setBlendMaskData private
    • BillboardChain - slightly clean up API
    • BillboardSet - drop deprecated getTextureCoords
    • clean up internal AnimableObject API
    • clean up RenderSystemCapabilities API
    • clean up VertexBoneAssignment definition
    • CompositorInstance - fix auto-sorting custom render passes
    • CompositorInstance - improve render_queue error message
    • DefaultDebugDrawer - add setBoneAxesSize()
    • DeflateStream can throw in close() > compressFinal()
    • devirtualise functions that would bypass virtual dispatch
    • factor out SceneMgrQueuedRenderableVisitor::renderTransparents
    • Frustum - drop now superfluous getProjectionMatrixRS
    • fix element count of ACT_TIME_0_*
    • fix ResourceGroupManager shutdown crash (#2859)
    • generate compile error when using IsNaN with fast math
    • GpuProgramParameters - do not set variability in clearAutoConstant
    • GpuProgramParameters - assert correct autoconstant type
    • hardcode builtin controller values and functions to float
    • HardwareBufferManager - cleanup VertexBufferCopy API
    • HardwareBufferManager - use private inheritance
    • HardwareVertex/IndexBuffer - use uint32 to store counts
    • HardwareBuffer - bring back reduced isSystemMemory
    • it is actually safe to default copy IndexData
    • introduce MOT_* as a replacement for now hidden FACTORY_TYPE_NAME
    • Light - convert spotlight angle animable values to Radian type
    • LiSPSMShadowCameraSetup::create - actually forward the params
    • make "Stereo Mode" RS Option a boolean & get rid of StereoModeType
    • make parameters const ref where applicable
    • Math: enable Vector3 -> Vector4 conversion for generic types
    • ManualObject - speed up copyTempVertexToBuffer
    • MeshManager - use object space bones by default
    • Mesh - try to detect improper use instead of crashing
    • move custom RSC loading out of Root
    • move render queue split configuration to ShadowRenderer
    • move RSC compatibility check to useCustomRenderSystemCapabilities
    • move SPFM_DELETE_T to OgreDeprecated.h
    • MOT_* strings for all MovableObjects (#2842)
    • ParticleEmitter - emit a single particle on first update
    • ParticleSystemManager - do not inherit from ScriptLoader
    • pass camera name as renderQueueStarted "invocation"
    • pass entity's transform to DebugDrawer::drawBone()
    • Pose - always store data float and int
    • Pose and Morph weights are always float
    • Profiler - clean up GPUEvent API, that was forwarding to RenderSys
    • put transparent objects on a separate render queue
    • RenderSystem
      • make createRenderSystemCapabilities protected
      • mManualBlendColours is only needed for FFP
      • use arrays for GPT_ related fields
      • clean up global instancing API call typos & naming
    • replace AnyNumeric by specialized methods in NumericAnimationTrack
    • replace PrefabType enum by the string equivalents
    • ResourceBackgroundQueue - port to new WorkQueue API
    • ResourceBackgroundQueue - refactor to use std::future
    • Resource - call prepareResource() before loading an unprepared manual resource
    • RSC_MRT_DIFFERENT_BIT_DEPTHS is D3D9 specific
    • SceneManager
      • fix docs, all movable objects auto-detach
      • make createSceneNode non-virtual
      • make more of the internal API private
      • _setPass - drop unused evenIfSuppressed
      • report derived material in renderdoc
    • SceneQueryListener - make consuming WorldFragment optional
    • SceneQuery - move most of WorldFragment API to BSP SceneManager
    • ScriptCompiler - fix _fireEvent doxygen comment
    • ShadowRenderer - factor out deriveTextureShadowPass
    • setBonesUseObjectSpace - use the passed value
    • simplify scene manager factory registration
    • Skeleton - convert _dumpContents to operator<<
    • slightly refactor RenderPriorityGroup
    • StaticGeometry - convert dump() to operator<<
    • SkyManager and ShadowRenderer need dllexport for mingw
    • slightly clean up TextureUnitState
    • type safety for GpuProgramParameters::getAutoConstantDefinition
    • Texture - make parts of the API private
    • Technique - avoid deadlock when shadow_*_material refers to self
    • use ad-hoc hashing instead of HashedVector
    • use identity for *VIEWPROJ_MATRIX if textureProjector is NULL
    • VertexElement - use typed enums to reduce storage size
    • VertexData - hide advanced reorganiseBuffers
    • WorkQueue
      • rename response queue to main-thread queue
      • replace request/ response by task-based API
      • fix race condition
    • C++11 updates
      • range loop refactoring (#2790, #2821, #2824, #2834, #2845)
      • add final annotation where applicable
      • improve code readability by using make_unique
    • made private
      • builtin movableobject factories
      • lightsForShadowTextureLess, lightLess, materialLess
      • NumericSolver
      • OGRE_SERIALIZER_VALIDATE_CHUNKSIZE
      • ShadowCasterSceneQueryListener
      • TempBlendedBufferInfo
      • UnifiedHighLevelGpuProgram
      • VertexDeclaration - hide vertexElementLess
      • DefaultHardware{Vertex,Index}Buffer
      • FrameTimeControllerValue - hide FrameListener
    • removed
      • Animable::DEGREE type - Degree auto converts to Radian
      • deprecated methods with low impact
      • deprecated normalise_normals pass property
      • deprecated RenderSystem API
      • getDisplayMonitorCount API
      • obsolete TextureUnitState API
      • OrientationMode API
      • PreApplyTextureAliasesScriptCompilerEvent
      • remains of SubMesh texture aliases
      • some hard-deprecated methods
      • support for putting tangents into texcoord bindings
      • TBB support
      • TAM_UNKNOWN and ACT_UNKNOWN
      • unused RenderSystemContext
      • VectorBase::operator=
      • SimpleRenderable - drop mParentSceneManager
      • GpuProgram - drop uses_adjacency_information
      • CompositorManager - drop empty initialise method
      • ImageCodec - drop deprecated ImageData based codepaths
      • RenderSystem - drop deprecated DepthBuffer API
      • RenderTarget - drop support for "DISPLAYNAME" custom attribute
  • Bites: StaticPluginLoader - dont forget to shutdown the codecs
  • UnifiedShader: apply USE_OGRE_FROM_FUTURE
  • CMake
    • SWIG - use CMP0078 NEW
    • Use all available processor cores to build dependencies
    • Dependencies: update freetype, SDL and Android NDK (#2827)
    • Dependencies: fix cross-compiling on apple
    • only enable PVRTC on iOS by default
    • Delete CTestConfig.cmake
  • RTSS
    • add default SRS first instead of last
    • allow using constants in At operand
    • cook torrance - forward surface alpha
    • Do not add the gl_PerVertex block when writing the shader.
    • do not split the light count by type
    • GLSLProgramWriter - use param semantic to determine attribute name
    • only require a single parameter for light_count
    • simplify FFPFog SRS
    • SubRenderState - add Any based setParameter overload
    • use dynamic light types for FFP shaders too
    • replace trivial FFP_Transform with builtin calls
    • drop hard deprecated methods
    • drop useless SPC_* enums
    • Media - drop FFPLib_Common
    • Media - all shaders are unified, drop the GLSL subdir
    • clean up Prerequisites.h
    • allow blacklisting TUS from FFP texturing
    • GLSLES - move default precision definition to GL3Support
    • IBL - ensure envmap is used as cubic texture
    • NormalMap
      • add new texture_unit level script format
      • fix shadergen for object space tangents
      • parallax texcoord should also affect normalmap lookup
      • Parallax fix and steep occlusion mapping (#2873)
    • hide
      • HardwareSkinning SRS and make factory config methods static
      • remaining FFP_LIB_* defines
      • as much of FFPTexturing as possible
      • FFPTransform
      • ProgramProcessor API
      • LayeredBlending - internal enums
  • Terrain
    • make TerrainMaterialGenerator::Profile optional
    • port to new WorkQueue API
    • reduce metadata verbosity
  • Overlay
    • update imgui to 1.89.7
    • Imgui: python - strip duplicate prefix for ImGuiSomething_FlagName flags
  • Bullet
    • split out CollisionWorld to allow collision detection only
    • wrap dynamics world to expose inheritance
  • Assimp
    • set emissive to 0 when using an emissive map
    • support loading embedded textures
  • MeshLodGenerator
    • collapse lines
    • factor out InputProvider differences
    • factor out InputProvider duplication
    • factor out OutputProvider differences
    • factor out OutputProvider duplication
    • get rid of OutputProviderCompressed*
    • initialize both options to previous behavior
    • input lines
    • make helper functions static
    • move compression into OutputProvider base class
    • output lines
    • prevent breaking lines
    • prevent punching holes
    • retain render operation types for buffered input
    • simplify LodIndexBuffer
    • use HardwareBuffers
    • hide concrete input/ output p...
Read more

v13.6.5

08 Jul 16:03
Compare
Choose a tag to compare
  • Main
    • DeflateStream can throw in close() > compressFinal()
    • fix element count of ACT_TIME_0_*
    • fix ResourceGroupManager shutdown crash (#2859)
    • GpuProgramParameters - assert correct autoconstant type
    • SceneManager - report derived material in renderdoc
    • Technique - avoid deadlock when shadow_*_material refers to self
    • use identity for *VIEWPROJ_MATRIX if textureProjector is NULL
  • CMake
    • Delete CTestConfig.cmake
    • Dependencies: fix cross-compiling on apple
  • RTSS
    • normalmap - parallax texcoord should also affect normalmap lookup
    • IBL - ensure envmap is used as cubic texture
  • GLSupport: early-out if shader source is empty
  • GLES2/GL3+: fix HardwareBuffer::copyData when offsets are not 0
  • GLES2: fix check in blitFromMemory
  • D3D11: memory leak due to undeleted stereo driver bridge
  • Metal: Check for BCn compression on macOS Big Sur
  • EXRCodec: Fix the function override problem under osx (#2831)
  • Assimp: do not crash if embedded texture cannot be loaded
  • Docs
    • improve RTSS and UnifiedShader docs
    • RTSS - fix references to SRS_* briefs
  • Tests: fix stencil glow on Mesa GLES
  • Samples
    • ShaderSystem - fix crash on toggling per pixel fog
    • Terrain - add mipmaps to compressed textures

v13.6.4

09 Apr 20:14
Compare
Choose a tag to compare
  • Main
    • LiSPSMShadowCameraSetup::create - actually forward the params
    • Mesh - actually only trigger assertion in debug mode
    • Resource - call prepareResource() before loading an unprepared manual resource
    • SceneManager - fix docs, all movable objects auto-detach
  • Tools
    • MeshUpgrader - avoid assertion in ~Mesh
    • XMLConverter: XMLSkeletonSerializer - use correct bone handles for createNodeTrack()
  • STBICodec: update embedded STB Image
  • D3D9: fall back to SO_GOURAUD for SO_PHONG
  • GL3Plus: always delete the VAO
  • Vulkan: fix hashing of shader stages
  • Tests: set a longer timeout for CTest

v13.6.3

10 Mar 22:02
6e1560e
Compare
Choose a tag to compare
  • Main
    • CompositorInstance - fix auto-sorting custom render passes
    • CompositorInstance - improve render_queue error message
    • Mesh - try to detect improper use instead of crashing
    • setBonesUseObjectSpace - use the passed value
  • RTSS
    • cook torrance - forward surface alpha
    • Do not add the gl_PerVertex block when writing the shader.
  • CMake: Use all available processor cores to build dependencies
  • GLSupport: EGL - always derive new config on X11
  • Samples: DeferredShading - fix gbuffer depth on GL

v13.6.2

07 Feb 21:35
Compare
Choose a tag to compare
  • Main
    • GpuProgramParameters - do not set variability in clearAutoConstant
    • move RSC compatibility check to useCustomRenderSystemCapabilities
  • Assimp
    • set emissive to 0 when using an emissive map
    • support loading embedded textures
  • GL: RenderToVertexBuffer - fix detection of GLSL shaders
  • GLSupport
    • EGL - fix multi-window operation
    • fix requested version of GL context
  • Docs: BuildingOgre - the install step is not really optional
  • Samples: DeferredShading - fix assert in detachFromParent
  • Tests: correctly report skipped tests
  • Tests: DotSceneTests - fix shutdown

v13.6.1

22 Jan 19:06
Compare
Choose a tag to compare
  • Main: range loop refactoring (#2740)
  • GLES2
    • better handle the case where we dont have texture_border_clamp
    • Emscripten: dynamically switch to WebGL2, if possible
    • Emscripten - add override annotations
  • RTSS: fix parsing triplanarTexturing params
  • Samples
    • Character - use depth shadows
    • remove no longer existing resource location

v13.6.0

13 Jan 18:37
Compare
Choose a tag to compare

Highlights

  • Image Based Lighting provided by the RTSS
  • Terrain shaders generated by the RTSS
  • significantly improved shadowing quality
  • Rust based image codec
  • Compute shader & UAV support for D3D11

What's Changed

  • Main
    • Implement a fallback for Ogre::Font::getGlyphInfo() (#2689)
    • add scripting support for unordered image access
    • assert that object was attached when detaching
    • auto-instancing - improve case when overwriting TEXCOORD1 in mesh
    • ConvexBody - deprecate logInfo()
    • correctly export typeinfo for Vector
    • deprecate TUS::hasViewRelativeTextureCoordinateGeneration
    • ETCCodec - fix handling unsupported formats
    • factor out logMaterialNotFound
    • fix array autoconstant corruption with CONFIG_DOUBLE
    • HardwareBufferManagerBase - drop makeBufferCopy
    • improve error message, when there is no active CompositorChain
    • LiSPSM - drop obsolete workaround
    • make normal textures available to compute shaders
    • MeshSerializer.exportMesh - organize overloads and support MeshPtr
    • NumericAnimationTrack - const correctness and inline accessors
    • PF_R11G11B10_FLOAT is not native endian
    • provide numMipMaps in ACT_TEXTURE_SIZE .w
    • range loop refactoring (#2686, #2697, #2708, #2716, #2727, #2732)
    • remove unused iterator instantiations
    • rename TU_UAV to TU_UNORDERED_ACCESS
    • Script - rename unordered_access > unordered_access_mip
    • ShadowRenderer - cull cam must be updated after pose is set
    • ShadowRenderer - fix shadow culling frustum getting stuck
    • ShadowRenderer - use shadow pancaking, if possible
    • Texture - support alternative cube face naming and recommend it
    • update precompiled header
    • validate TextureUnitState TexCalc settings
    • validate texUnit against caps in _setTextureUnitSettings
    • Revert "Quaternion - always use float storage"
    • Fix compiler errors when OGRE_CONFIG_THREADS is set to 1
  • UnifiedShader: add textureCubeLod
  • Dependencies: update SDL2, Assimp
  • SWIG: wrap DefaultHardwareBufferManager
  • RTSS
    • add 2 argument callBuiltin overload
    • add Image Based Lighting SRS
    • allow creating structs in generated code
    • also redirect writes to globals on HLSL
    • correct handling of isTextureLoadFailing
    • FFPTexturing - move trivial blend functions to cpp
    • FFPTexturing - serialize late_add_blend by default
    • FFPTexturing - simplify env_map reflection
    • FFPTexturing - simplify env_map texcoord generation
    • FFPTexturing - simplify projective texturing
    • fix integer float mul, which GLSLES dislikes
    • IBL - assume hwgamma to correctly handle HDR envmaps
    • IBL - fix DFG LUT lookup
    • merge HLSL and CGProgramWriter
    • move serialization code to SGMaterialSerializerListener
    • normal mapping - apply tangent parity bit
    • refactor PBR lighting stages using a PixelParams struct
    • slightly update CookTorrance shader
  • Terrain
    • use RTSS to generate main & composite techniques
    • blendTerrainLayer - early out, if blending would have no effect
    • correctly blend normalmap layers
    • deprecate ReceiveDynamicShadowsDepth
    • do lighting in view space, matching the RTSS
    • do not cast dynamic shadows by default
  • Tools: AssimpConverter - also export RTSS sections in material
  • Plugins
    • Assimp - prepend mesh name to material
    • add new Rust Image Codec
  • RenderSystems: drop unused OgreMain includes
  • GL*
    • drop unused HardwareBufferManager::getStateCacheManager
    • slightly clean up StateCacheManager
    • unify more of GLSLProgramManagerCommon
  • GL3+
    • fix PF_R11G11B10_FLOAT support
    • StateCache - disable state caching that breaks multi-context use
  • GLES2
    • correctly enable TAM_BORDER, when possible
    • Remove "using namespace Ogre" from a header (#2690)
  • Vulkan
    • implement _setDepthClamp
    • implement HBL_NORMAL for HardwarePixelBuffer
    • implement SRGB support
  • D3D11
    • correctly handle PM_POINTS
    • enable support for PF_R11G11B10_FLOAT
    • follow the common unordered access API
    • implement _dispatchCompute and UAVs
  • D3D9
    • do not clamp texunits to FFP limits
    • Texture - correctly report number of mipmaps with TU_AUTOMIPMAP
  • Docs
    • AnimationTrack - fix duplicated and outdated note
    • update 13-Notes with 13.6 changes
  • Samples
    • disable DragLook for iOS at single place
    • Dot3 - show RTSS materials first
    • drop no longer used SampleLib_ReflectionMap
    • fix LightShafts after shadow camera changes
    • PBR - fix compilation with double precision
    • PBR - fix reflections with glTF2 and Filament
    • remove material export from ShaderSystem sample
    • ShaderSystem - replace ReflectionMap by IBL SRS
    • use new IBL cubemap and clean up IBL sample data
    • use RTSS for Examples/BumpMapping/MultiLightSpecular
  • Tests
    • add test for NumericAnimationTrack
    • Test Quaternion double precision
    • PlayPen - fix IntegratedPSSM test
    • allow taking screenshots, when run in SampleBrowser
    • shut down current test before starting the next

Development is funded by your contributions

If your company uses Ogre, consider supporting its development in return: