This class allows you to plug in new ways to define the camera setup when rendering and projecting shadow textures.
More...
#include <OgreShadowCameraSetup.h>
This class allows you to plug in new ways to define the camera setup when rendering and projecting shadow textures.
- Ogre is provided with several alternative shadow camera setups, including LiSPSM (LiSPSMShadowCameraSetup) and Plane Optimal (PlaneOptimalShadowCameraSetup). Others can of course be written to incorporate other algorithms. All you have to do is instantiate one of these classes and enable it using SceneManager::setShadowCameraSetup (global) or Light::setCustomShadowCameraSetup (per light). In both cases the instance is wrapped in a SharedPtr which means it will be deleted automatically when no more references to it exist.
- Note
- Shadow map matrices, being projective matrices, have 15 degrees of freedom. 3 of these degrees of freedom are fixed by the light's position. 4 are used to affinely affect z values. 6 affinely affect u,v sampling. 2 are projective degrees of freedom. This class is meant to allow custom methods for handling optimization.
◆ ShadowCameraSetup()
Ogre::ShadowCameraSetup::ShadowCameraSetup |
( |
| ) |
|
|
inline |
◆ ~ShadowCameraSetup()
virtual Ogre::ShadowCameraSetup::~ShadowCameraSetup |
( |
| ) |
|
|
inlinevirtual |
Need virtual destructor in case subclasses use it.
◆ getMaxDistance()
Real Ogre::ShadowCameraSetup::getMaxDistance |
( |
| ) |
const |
|
inline |
◆ getMinDistance()
Real Ogre::ShadowCameraSetup::getMinDistance |
( |
| ) |
const |
|
inline |
◆ getShadowCamera()
virtual void Ogre::ShadowCameraSetup::getShadowCamera |
( |
const SceneManager * |
sm, |
|
|
const Camera * |
cam, |
|
|
const Light * |
light, |
|
|
Camera * |
texCam, |
|
|
size_t |
iteration, |
|
|
const Vector2 & |
viewportRealSize |
|
) |
| const |
|
pure virtual |
◆ setUseEsm()
static void Ogre::ShadowCameraSetup::setUseEsm |
( |
bool |
useEsm | ) |
|
|
inlinestatic |
The documentation for this class was generated from the following file: