Ogre 14.1.0 was just released. This release contains some significant bug-fixes and feature additions, which we will discuss in more detail below. We recommend all users of the 14.x branch to update.
For a full overview of the changes, see the changelog.
Table of Contents
Rectangular Area Lights
A new spot light type LT_RECTLIGHT
has been introduced along with the Light::setSourceSize
method, enabling the rendering of rectangular area lights. In order to process this light type in your shader, verify that the spotlight_params.w
autoparam is equal to 2. Then, spotlight_params.xyz
contains the light width in view space, and light_attenuation.xyz
contains the light height. Alternatively, just use the RTSS.
Correct whitespace loading
Historically, Ogre had incorrect glyph placement due to the initial authors not fully understanding the freetype glyph conventions.
The majority of these issues were addressed in version 13.0, but one notable exception remained: the width of the whitespace character. This was caused by a bug that prevented the width from being correctly read from freetype, so Ogre used the width of the number ‘0’ instead. This issue has now been resolved, as can seen below
However, to achieve this, you must load the code-point 32. Failure to do so will result in the ‘?’ placeholder character being displayed following the behaviour of ImGui.
RTSS: support for multiple shadow casting lights
Up until now, the shadow mapping SRS had only supported a single light source with the option of using parallel splits for increased resolution, due to the fact that it initially only supported PSSM.
I have finally came around to refactoring this code such it supports multiple shadow casting lights now.
By default this implements additive shadows, which was the most costly shadowing variant when not using integrated shadows. As we are using integrated shadows here, it is basically free now.
Only when using per-vertex lighting, we fall back to modulative shadows as all lights were already evaluated in the vertex shader.
You can configure the number of lights that should be considers via:
srs->setParameter("light_count", "2")