Skip to content

Releases: OGRECave/ogre

v14.3.1

22 Oct 22:57
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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)

v14.2.3

28 Mar 17:42
Compare
Choose a tag to compare
  • Main
    • Material - fix technique loading regression introduced in v14.2.1
    • ScriptTranslator - report if texture is re-declared with different settings
    • ShadowRenderer - check that tech and pass exists
    • Technique - allow compiling simple techniques without RS
  • GL3+: fix getClosestGLImageInternalFormat (#3065)
  • GL: Update ps_1_4.cpp (#3066)
  • MeshLOD: range loop refactoring (#3064)
  • Samples: Character - use InputListenerCain for event propagation

v14.2.2

07 Mar 13:46
Compare
Choose a tag to compare

this is a fixup for v14.2.1 to restore language binding support with SWIG 4.2.1

changes:

  • SWIG: fix typed enums in Csharp
  • SWIG: ignore getPropertyName

v14.2.1

05 Mar 22:57
Compare
Choose a tag to compare
  • Main
    • GpuProgramManager - bump Microcode cache version
    • Material - ensure supported techniques are refreshed on reload
  • SWIG: correctly wrap time_t
  • Bullet: DebugDrawer - fix typo in line color conversion
  • D3D11: Revert "removed unecssary null ptr checks + changed NULL to nullptr"
  • Samples: Media - remove unused files
  • Tests: make sure Trays are not shown when samples are run as Tests

v14.2.0

25 Feb 22:56
Compare
Choose a tag to compare

Highlights

  • Bites: added ImGui based config dialog
  • Tools: expose vertex cache optimizer in MeshUpgrader
  • various bugfixes and performance optimizations

Details in announcement post

What's Changed

  • Main
    • add SceneNode destroyChildAndObject etc convenience methods (#2963)
    • ControllerManager - use std::vector for ControllerList
    • copyMatchingNamedConstantsFrom - switch to release assert
    • deprecate RSC_POINT_EXTENDED_PARAMETERS
    • fix spelling error in MOT_FRUSTRUM (#2943)
    • GpuProgramManager - improve missing shared_params error message
    • GpuProgramParameters - fix edge cases for params of invalid logicalIndex or single float size
    • GpuProgramTranslator - skip params on programs that failed to load
    • inline Math::UnitRandom as it is on the hot path for particle emission
    • Log - use put_time for timestamp formatting
    • ParticleSystem - add profiling instrumentation
    • ProfileInstance - simplify logResults
    • ResourceManager::remove - check whether we created the resource
    • RSC - domain and hull programs always come together
    • SceneManager - add Static Geometry collection access (#2987)
    • SceneManager - dont bind compute programs. They are dispatched differently
    • ScriptTranslator - unify ID to GpuProgramType translation
    • SimpleSpline - make coeffs static and simplify constructor
    • simplify ParticleSystemTranslator
    • SubEntity - provide correct bone matrices for binding pose
    • Technique
      • also check RSC_WIDE_LINES for compatibility
      • check RSC_POINT_SPRITES availability
      • do not add superfluous newline to compileErrors
      • try to catch user missing a program type early on
      • also check TEX_TYPE compatibility in programmable passes
    • VertexCacheProfiler - add average cache miss ratio metric
    • workaround any_cast on iOS by using strcmp
    • WorkQueue - move WorkerThreadCount to interface
    • fix compilation with double
    • fix emscripten build on apple
    • removed unecssary null ptr checks + changed NULL to nullptr
  • CMake
    • bump required version to 3.13
    • check for pugixml before enabling dependent options
    • fix ios toolchain for cmake 3.28
    • let CMake decide on the xcode attributes
  • Dependencies
    • update Assimp to version 5.3.1
    • update freetype to version 2.13.2
    • update pugixml to version 1.14
    • update SDL2 to 2.28.5
    • update imgui to 1.90.4
    • update zlib and switch to github mirror (#3031)
    • update bundled stb_truetype to version 1.26
  • SWIG
    • fix building with swig 4.2.0
    • ignore some deprecated functions
    • use argument_fail for consistent type error reporting
  • RTSS
    • also check if the src technique is supported
    • cloneShaderBasedTechniques - ensure src material is loaded
    • GLSLProgramWriter - skip gl_PointSize in Fragment Shader
    • remove empty function stubs
    • unify writeProgramDependencies
    • use same variable name for vs out and ps in
  • Overlay
    • add workaround for whitespace advance when using stbtt
    • Container - update children first as notifyParent may call initialise on them
    • Font
      • drop obsolete character_spacer StringInterface
      • use antialias_colour by default and deprecate the off state
    • FontManager - drop unimplemented methods
    • ImGui
      • also clean font texture and material
      • implement renderer configuration dialog
      • wrap PlotHistogram, PlotLines for python
      • improve error message in addFont
    • ProfileSessionListener - fix crash in finializeSession
    • store zorder as ushort instead of ulong
    • use runtime assert to check zorder range
  • Bites
    • allow force disabling native ConfigDialog
    • ApplicationContext
      • add convenience functions to bring up ImGui
      • add runRenderingSettingsDialog
      • const correct getFSLayer
      • deprecate ApplicationContext::reconfigure
    • ImGuiInputListener - silently ignore events if context dissapeared
    • InputListenerChain - forward frameRendered events and add empty() method
    • range loop refactoring (#3013)
  • MeshLOD
    • fix not using CacheList when we should
    • LodOutputProviderMesh - correctly assign indexStart
    • range loop refactoring (#3016, #3024, #3037, #3014)
  • Bullet: add basic documentation
  • Assimp: fix version printing. revision is the git hash
  • RsImageCodec: fix build with latest Rust toolchain
  • GLSLang
    • check that a valid UBO name is used
    • compile as std17, to allow using recent Vulkan SDKs
  • D3D11
    • do not set any PointSize related RSC as it is unsupported
    • HLSL - drop logical indexing as it makes no sense
    • HLSL - give up on custom alignment logic
    • range loop refactoring (#2972)
    • Texture - src image attributes should not be overwritten
  • D3D9: drop unused _setSrcAttributes
  • GLSupport
    • add leading whitespace to FSAA options
    • const correct GLSLPreprocessor
    • range loop refactoring (#2968)
  • GL3Plus
    • alias CS UBO to VS UBO as both wont be present at the same time
    • do not crash if nonexistant shared_params are referenced
  • GL: const correctness for ps_1_4 testCompile
  • Vulkan: correctly check for RSC_POINT_SPRITES
  • GLES2: turn on normalization for VET_INT_10_10_10_2_NORM
  • Tools: MeshUpgrader
    • add optvtxcache flag to optimize vertex cache
    • more robust argument number check
  • Docs
    • actually link to the last two API references
    • fix copydoc usage in material-scripts.md
    • fix formatting of Changelog
    • list mesh tool parameters in manual
    • slightly improve the Shadow Mapping tutorial
    • update 14-Notes
    • update required compilers
  • Samples
    • Browser
      • use InputListenerChain
      • use ImGui based renderer config dialog
    • Sample/ SdkSample
      • do not duplicate FrameListener API
      • remove superfluous boilerplate methods
      • drop unused WindowEventListener methods
      • register input directly with context
      • expose ApplicationContext to Samples
      • take care of trays internally
      • use InputListenerChain for clear input propagation
      • move input related stuff to SdkSample
    • range loop refactoring (#2993)
    • PNTriangles - use requireMaterial
  • Tests
    • convert BillboardTextureCoords VTest to Unit Test
    • TestContext - port to runRenderingSettingsDialog

Development is funded by your contributions

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

v14.1.2

31 Oct 14:53
Compare
Choose a tag to compare
  • SWIG: wrap CompositorChain::getCompositor & CompositorInstanceList