|
| PSSMShadowCameraSetup () |
|
virtual | ~PSSMShadowCameraSetup () |
|
void | calculateSplitPoints (uint splitCount, Real nearDist, Real farDist, Real lambda=0.95f) |
| Calculate a new splitting scheme.
|
|
Real | getOptimalAdjustFactor () const override |
| Overridden, recommended internal use only since depends on current iteration.
|
|
Real | getOptimalAdjustFactor (size_t splitIndex) const |
| Returns the optimal adjust factor for a given split.
|
|
void | getShadowCamera (const Ogre::SceneManager *sm, const Ogre::Camera *cam, const Ogre::Viewport *vp, const Ogre::Light *light, Ogre::Camera *texCam, size_t iteration) const override |
| Returns a LiSPSM shadow camera with PSSM splits base on iteration.
|
|
uint | getSplitCount () const |
| Get the number of splits.
|
|
Real | getSplitPadding () const |
| Get the padding factor to apply to the near & far distances when matching up splits to one another, to avoid 'cracks'.
|
|
const SplitPointList & | getSplitPoints () const |
| Returns the calculated split points.
|
|
void | setOptimalAdjustFactor (size_t splitIndex, Real factor) |
| Set the LiSPSM optimal adjust factor for a given split (call after configuring splits).
|
|
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'.
|
|
void | setSplitPoints (const SplitPointList &newSplitPoints) |
| Manually configure a new splitting scheme.
|
|
Public Member Functions inherited from Ogre::LiSPSMShadowCameraSetup |
| LiSPSMShadowCameraSetup (Real n=0.1f, bool useSimpleNOpt=true, Degree angle=Radian(0.451f)) |
|
virtual | ~LiSPSMShadowCameraSetup () |
|
virtual Degree | getCameraLightDirectionThreshold () const |
| Sets the threshold between the camera and the light direction below which the LiSPSM projection is 'flattened', since coincident light and camera projections cause problems with the perspective skew.
|
|
virtual bool | getUseSimpleOptimalAdjust () const |
| Gets whether or not to use a slightly simpler version of the camera near point derivation (default is true)
|
|
void | setCameraLightDirectionThreshold (Degree angle) |
| Sets the threshold between the camera and the light direction below which the LiSPSM projection is 'flattened', since coincident light and camera projections cause problems with the perspective skew.
|
|
virtual void | setUseSimpleOptimalAdjust (bool s) |
| Sets whether or not to use a slightly simpler version of the camera near point derivation (default is true)
|
|
Public Member Functions inherited from Ogre::FocusedShadowCameraSetup |
| FocusedShadowCameraSetup (bool useAggressiveRegion=true) |
|
| ~FocusedShadowCameraSetup () |
|
bool | getUseAggressiveFocusRegion () const |
|
void | setUseAggressiveFocusRegion (bool aggressive) |
| Sets whether or not to use the more aggressive approach to deciding on the focus region or not.
|
|
Public Member Functions inherited from Ogre::DefaultShadowCameraSetup |
| DefaultShadowCameraSetup () |
|
virtual | ~DefaultShadowCameraSetup () |
|
Public Member Functions inherited from Ogre::ShadowCameraSetup |
virtual | ~ShadowCameraSetup () |
| Need virtual destructor in case subclasses use it.
|
|
Parallel Split Shadow Map (PSSM) shadow camera setup.
A PSSM shadow system uses multiple shadow maps per light and maps each texture into a region of space, progressing away from the camera. As such it is most appropriate for directional light setups. This particular version also uses LiSPSM projection for each split to maximise the quality.
- 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).