|
| PSSMShadowCameraSetup () |
| Constructor, defaults to 3 splits. More...
|
|
| ~PSSMShadowCameraSetup () override |
|
void | calculateSplitPoints (uint splitCount, Real nearDist, Real farDist, Real lambda=Real(0.95), Real blend=Real(0.125), Real fade=Real(0.313)) |
| Calculate a new splitting scheme. More...
|
|
uint32 | getNumStableSplits () const |
|
void | getShadowCamera (const Ogre::SceneManager *sm, const Ogre::Camera *cam, const Ogre::Light *light, Ogre::Camera *texCam, size_t iteration, const Vector2 &viewportRealSize) const override |
| Returns a LiSPSM shadow camera with PSSM splits base on iteration. More...
|
|
const SplitPointList & | getSplitBlendPoints () const |
| Returns the calculated split blend points. More...
|
|
uint | getSplitCount () const |
| Get the number of splits. More...
|
|
const Real & | getSplitFadePoint () const |
| Returns the calculated split fade point. More...
|
|
Real | getSplitPadding () const |
| Get the padding factor to apply to the near & far distances when matching up splits to one another, to avoid 'cracks'. More...
|
|
const SplitPointList & | getSplitPoints () const |
| Returns the calculated split points. More...
|
|
void | setNumStableSplits (uint32 numStableSplits) |
| PSSM tends to be very unstable to camera rotation changes. More...
|
|
void | setOptimalAdjustFactor (size_t splitIndex, Real factor) |
| Set the LiSPSM optimal adjust factor for a given split (call after configuring splits). More...
|
|
void | setSplitPadding (Real pad) |
| Set the padding factor to apply to the near & far distances when matching up splits to one another, to avoid 'cracks'. More...
|
|
void | setSplitPoints (const SplitPointList &newSplitPoints, Real blend=Real(0.125), Real fade=Real(0.313)) |
| Manually configure a new splitting scheme. More...
|
|
Public Member Functions inherited from Ogre::FocusedShadowCameraSetup |
| FocusedShadowCameraSetup () |
| Default constructor. More...
|
|
| ~FocusedShadowCameraSetup () override |
| Default destructor. More...
|
|
Real | getXYPadding () const |
| See FocusedShadowCameraSetup::setXYPadding. More...
|
|
void | setXYPadding (Real pad) |
| setXYPadding FocusedShadowCameraSetup tries to make the shadow mapping camera fit the casters as tight as possible to minimize aliasing. More...
|
|
Public Member Functions inherited from Ogre::DefaultShadowCameraSetup |
| DefaultShadowCameraSetup () |
| Default constructor. More...
|
|
| ~DefaultShadowCameraSetup () override |
| Destructor. More...
|
|
Public Member Functions inherited from Ogre::ShadowCameraSetup |
| ShadowCameraSetup () |
|
virtual | ~ShadowCameraSetup () |
| Need virtual destructor in case subclasses use it. More...
|
|
Real | getMaxDistance () const |
|
Real | getMinDistance () const |
|
Parallel Split Shadow Map (PSSM) shadow camera setup.
- Note
- Because PSSM uses multiple shadow maps per light, you will need to increase the number of shadow textures available (via SceneManager) to match the number of shadow maps required (default is 3 per light).
void Ogre::PSSMShadowCameraSetup::setNumStableSplits |
( |
uint32 |
numStableSplits | ) |
|
|
inline |
PSSM tends to be very unstable to camera rotation changes.
Rotate the camera around and the shadow mapping artifacts keep changing.
setNumStableSplits allows you to fix that problem; by switching to ConcentricShadowCamera for the first N splits you specify; while the rest of the splits will use FocusedShadowCameraSetup.
We achieve rotation stability by sacrificing overall quality. Using ConcentricShadowCamera on higher splits means sacrificing exponentially a lot more quality (and even performance); thus the recommended values are numStableSplits = 1 or numStableSplits = 2
The default is numStableSplits = 0 which disables the feature