Skip to content

Releases: OGRECave/ogre

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:

v14.2.6

01 Jun 22:51

Choose a tag to compare

  • Main:
    • MaterialSerializer - write vertexcolour regardless of lighting setting
    • ResourceGroupManager - fix condition for changeGroupOwnership
    • ScriptTranslator - do not assert on empty material names
    • VertexData::reorganiseBuffers - assert srcelem exists
  • SWIG:
    • enable Matrix4 / Affine3 multiplication
    • fix a bunch of warnings
  • Python: Numpy.view - handle Affine3
  • GLSLang: fixing linking on archlinux (#3115)
  • Assimp: disambiguate embedded textures
  • GLSupport: OSX - verify that contentScalingFactor is active
  • Vulkan: correctly report the programs it supports
  • Samples:
    • Compositor - fix RT debug view with RTSS
    • LightShafts - use PF_DEPTH16
  • Tools
    • use explicit anchor for empty material names
    • XMLConverter - print the reason if parsing fails
  • Docs: improve gpu_*_rule formatting

v14.2.5

12 May 12:19

Choose a tag to compare

  • Main: MovableObject - getReceivesShadows does not need best technique
  • CMake: fix compling for android on osx
  • Overlays: Font - fix memory leak when using stbtt (#3100)
  • DotScene
    • Improve identation of DTD (#3088)
    • remove improper "active" attribute from skyBox (#3082)
  • D3D9: make sure AutoHardwareBufferManagement is enabled on first run
  • GLSLang: add workaround for compilation with glslang v14+
  • Samples
    • Browser - fix configure menu being always disabled
    • correctly disconnect input on paused events
    • drop edgelists from sibenik.mesh to reduce size
    • fix crash on restarting sample
    • range loop refactoring (#3083)
  • Docs
    • fix SceneManger doc formatting
    • fix various docstrings causing unintended code formatting
    • improve point_size_attenuation docs
    • Tutorial3 - clean up headers and add merge example with imagick

v14.2.4

14 Apr 21:53

Choose a tag to compare

  • Main: Log - spell out %T as MinGW does not support %T
  • Bites: fix building without imgui
  • Dependencies: update assimp to 5.4.0
  • DotScene: Add support for LT_RECTLIGHT (#3074)
  • Property: range loop refactoring
  • MeshUpgrader
    • Add option to print version
    • Log packing of normals and tangents
  • Docs: fix typos (#3072)