Download Latest Version v1.12.9.zip (128.1 MB)
Email in envelope

Get an email when there's a new version of OGRE (O-O Graphics Rendering Engine)

Home / v14.4.0
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2025-07-24 9.2 kB
v14.4.0 source code.tar.gz 2025-07-24 94.2 MB
v14.4.0 source code.zip 2025-07-24 96.2 MB
Totals: 3 Items   190.4 MB 1

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:

Source: README.md, updated 2025-07-24