Skip to content

v14.0.0

Compare
Choose a tag to compare
@paroj paroj released this 08 Jul 16:04
· 501 commits to master since this release

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 providers
    • hide LodBuffer
    • hide LodWorkQueueRequest
    • LodIndexBuffer - use a DefaultHardwareBuffer for storage
    • replace LodIndexBuffer by IndexData
    • LodInputProvider - reduce code duplication
    • use typed Vector3, so CONFIG_DOUBLE still works
    • port to new WorkQueue API
  • RenderSystems
    • unify RenderToVertexBuffer implementations
    • implement VertexWinding in terms of FrontFace (exception: D3D9)
  • GLSupport
    • EGL - always derive new config on X11
    • EGL - cleanup after currentGLContext fixes
    • EGL - fix multi-window operation
    • fix requested version of GL context
    • early-out if shader source is empty
  • GLES2/GL3+: fix HardwareBuffer::copyData when offsets are not 0
  • GL3+
    • drop texture* and FragColor defines in favor of GL3Support.glsl
    • always delete the VAO (#2814)
  • GLES2
    • fix check in blitFromMemory
    • reduce verbosity in debug mode
  • GL
    • check if mCurrentContext is null
    • RenderToVertexBuffer - fix detection of GLSL shaders
  • Vulkan
    • fix hashing of shader stages
    • Remove PVRTC support following ogre-next
  • D3D9: fall back to SO_GOURAUD for SO_PHONG
  • D3D11: memory leak due to undeleted stereo driver bridge
  • Metal: Check for BCn compression on macOS Big Sur
  • ImageCodecs: drop unused Plugin API
  • EXRCodec: Fix the function override problem under osx (#2831)
  • STBICodec: update embedded STB Image
  • Paging: port to new WorkQueue API
  • Volume: port to new WorkQueue API
  • Tools
    • MeshUpgrader - avoid assertion in ~Mesh
    • MeshUpgrader - do not generate edge lists by default
    • MeshUpgrader - drop interactive mode
    • XMLConverter: XMLSkeletonSerializer - use correct bone handles for createNodeTrack()
    • delete obsolete Tools without CMake build
  • Docs
    • BuildingOgre - the install step is not really optional
    • Update visuals of some old (and current) Tools documentation (#2766)
    • improve RTSS and UnifiedShader docs
    • add 14-Notes
    • RTSS - fix references to SRS_* briefs
  • Samples
    • DeferredShading - fix assert in detachFromParent
    • DeferredShading - fix gbuffer depth on GL
    • MeshLod - add compression option
    • MeshLod - do not save lodconfig by default
    • MeshLod - fix SHOW_MESH_HULL option
    • ShaderSystem - update for new normalmap API
    • ShaderSystem - fix crash on toggling per pixel fog
    • ShaderSystem - use SRS_* constants
    • Terrain - add mipmaps to compressed textures
    • WBOIT - update to new UnifiedShader
  • Tests
    • add GTest based tests to CTest
    • correctly report skipped tests
    • DotSceneTests - fix shutdown
    • PlayPen_16Textures - update for new UnifiedShader
    • set a longer timeout for CTest (#2816)
    • simplify CTest setup for VTests
    • test GpuProgramParams.Variability
    • fix stencil glow on Mesa GLES

Development is funded by your contributions

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