The interactive file manager requires Javascript. Please enable it or use sftp or scp.
You may still browse the files here.

Download Latest Version v14.4.1 source code.tar.gz (94.2 MB)
Email in envelope

Get an email when there's a new version of OGRE

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 0

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