osgShadow::ParallelSplitShadowMap Class Reference

`#include <ParallelSplitShadowMap>`

Inheritance diagram for osgShadow::ParallelSplitShadowMap:

## Classes

class | FragmentShaderGenerator
struct | PSSMShadowSplitTexture

## Public Types

enum | SplitCalcMode { SPLIT_LINEAR , SPLIT_EXP }
Public Types inherited from osg::Object
enum | DataVariance { DYNAMIC , STATIC , UNSPECIFIED }

## Public Member Functions

| ParallelSplitShadowMap (osg::Geode **debugGroup=NULL, int icountplanes=3)
| ParallelSplitShadowMap (const ParallelSplitShadowMap &es, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
| META_Object (osgShadow, ParallelSplitShadowMap)
virtual void | init ()
virtual void | update (osg::NodeVisitor &nv)
virtual void | cull (osgUtil::CullVisitor &cv)
virtual void | cleanSceneGraph ()
void | setDebugColorOn ()
void | setPolygonOffset (const osg::Vec2f &p)
const osg::Vec2f & | getPolygonOffset () const
void | setTextureResolution (unsigned int resolution)
unsigned int | getTextureResolution () const
void | setMaxFarDistance (double farDist)
double | getMaxFarDistance () const
void | setMoveVCamBehindRCamFactor (double distFactor)
double | getMoveVCamBehindRCamFactor () const
void | setMinNearDistanceForSplits (double nd)
double | getMinNearDistanceForSplits () const
void | setUserLight (osg::Light *light)
const osg::Light * | getUserLight () const
void | setAmbientBias (const osg::Vec2 &ambientBias)
const osg::Vec2 & | getAmbientBias () const
void | setFragmentShaderGenerator (FragmentShaderGenerator *fsw)
void | enableShadowGLSLFiltering (bool filtering=true)
void | setSplitCalculationMode (SplitCalcMode scm=SPLIT_EXP)
SplitCalcMode | getSplitCalculationMode () const
virtual void | resizeGLObjectBuffers (unsigned int maxSize)
virtual void | releaseGLObjects (osg::State *=0) const
Public Member Functions inherited from osgShadow::ShadowTechnique
| ShadowTechnique ()
| ShadowTechnique (const ShadowTechnique &es, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
virtual bool | isSameKindAs (const osg::Object *obj) const
virtual const char * | libraryName () const
virtual const char * | className () const
virtual void | setShadowedScene (ShadowedScene *ss)
ShadowedScene * | getShadowedScene ()
const ShadowedScene * | getShadowedScene () const
virtual void | traverse (osg::NodeVisitor &nv)
virtual void | dirty ()
Public Member Functions inherited from osg::Object
| Object ()
| Object (bool threadSafeRefUnref)
| Object (const Object &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
virtual Object * | cloneType () const =0
virtual Object * | clone (const CopyOp &) const =0
std::string | getCompoundClassName () const
virtual Node * | asNode ()
virtual const Node * | asNode () const
virtual NodeVisitor * | asNodeVisitor ()
virtual const NodeVisitor * | asNodeVisitor () const
virtual StateSet * | asStateSet ()
virtual const StateSet * | asStateSet () const
virtual StateAttribute * | asStateAttribute ()
virtual const StateAttribute * | asStateAttribute () const
virtual Uniform * | asUniform ()
virtual const Uniform * | asUniform () const
virtual Camera * | asCamera ()
virtual const Camera * | asCamera () const
virtual Drawable * | asDrawable ()
virtual const Drawable * | asDrawable () const
virtual Callback * | asCallback ()
virtual const Callback * | asCallback () const
virtual CallbackObject * | asCallbackObject ()
virtual const CallbackObject * | asCallbackObject () const
virtual UserDataContainer * | asUserDataContainer ()
virtual const UserDataContainer * | asUserDataContainer () const
virtual ValueObject * | asValueObject ()
virtual const ValueObject * | asValueObject () const
virtual Image * | asImage ()
virtual const Image * | asImage () const
virtual void | setThreadSafeRefUnref (bool threadSafe)
virtual void | setName (const std::string &name)
void | setName (const char *name)
const std::string & | getName () const
void | setDataVariance (DataVariance dv)
DataVariance | getDataVariance () const
virtual void | computeDataVariance ()
void | setUserDataContainer (osg::UserDataContainer *udc)
template<class T>
void | setUserDataContainer (const ref_ptr< T > &udc)
osg::UserDataContainer * | getUserDataContainer ()
const osg::UserDataContainer * | getUserDataContainer () const
osg::UserDataContainer * | getOrCreateUserDataContainer ()
virtual void | setUserData (Referenced *obj)
template<class T>
void | setUserData (const ref_ptr< T > &ud)
virtual Referenced * | getUserData ()
virtual const Referenced * | getUserData () const
template<typename T>
bool | getUserValue (const std::string &name, T &value) const
template<typename T>
void | setUserValue (const std::string &name, const T &value)
template<typename T>
BoolValueObject UCharValueObject UShortValueObject UIntValueObject DoubleValueObject Vec3fValueObject Vec2dValueObject Vec4dValueObject PlaneValueObject MatrixdValueObject BoundingBoxdValueObject BoundingSpheredValueObject bool | getUserValue (const std::string &name, T &value) const
Public Member Functions inherited from osg::Referenced
| Referenced ()
| Referenced (bool threadSafeRefUnref)
| Referenced (const Referenced &)
Referenced & | operator= (const Referenced &)
bool | getThreadSafeRefUnref () const
OpenThreads::Mutex * | getRefMutex () const
int | ref () const
int | unref () const
int | unref_nodelete () const
int | referenceCount () const
ObserverSet * | getObserverSet () const
ObserverSet * | getOrCreateObserverSet () const
void | addObserver (Observer *observer) const
void | removeObserver (Observer *observer) const

## Protected Types

typedef std::map< unsigned int, PSSMShadowSplitTexture > | PSSMShadowSplitTextureMap

## Protected Member Functions

virtual | ~ParallelSplitShadowMap ()
Protected Member Functions inherited from osgShadow::ShadowTechnique
osg::Vec3 | computeOrthogonalVector (const osg::Vec3 &direction) const
virtual | ~ShadowTechnique ()
Protected Member Functions inherited from osg::Object
virtual | ~Object ()
Protected Member Functions inherited from osg::Referenced
virtual | ~Referenced ()
void | signalObserversAndDelete (bool signalDelete, bool doDelete) const
void | deleteUsingDeleteHandler () const

## Protected Attributes

PSSMShadowSplitTextureMap | _PSSMShadowSplitTextureMap
Protected Attributes inherited from osgShadow::ShadowTechnique
ShadowedScene * | _shadowedScene
bool | _dirty
Protected Attributes inherited from osg::Object
std::string | _name
DataVariance | _dataVariance
osg::UserDataContainer * | _userDataContainer
Protected Attributes inherited from osg::Referenced
OpenThreads::AtomicPtr | _observerSet
OpenThreads::Atomic | _refCount

## Additional Inherited Members

Static Public Member Functions inherited from osg::Referenced
static OpenThreads::Mutex * | getGlobalReferencedMutex ()
static void | setDeleteHandler (DeleteHandler *handler)
static DeleteHandler * | getDeleteHandler ()

## Member Typedef Documentation

## PSSMShadowSplitTextureMap

typedef std::map<unsigned int,PSSMShadowSplitTexture> osgShadow::ParallelSplitShadowMap::PSSMShadowSplitTextureMap

protected

## Member Enumeration Documentation

## SplitCalcMode

enum osgShadow::ParallelSplitShadowMap::SplitCalcMode

Enumerator
SPLIT_LINEAR |
SPLIT_EXP |

## Constructor & Destructor Documentation

## ParallelSplitShadowMap() [1/2]

osgShadow::ParallelSplitShadowMap::ParallelSplitShadowMap | ( | osg::Geode ** | debugGroup = NULL,
|  | int | icountplanes = 3 )

References NULL.

Referenced by META_Object(), and ParallelSplitShadowMap().

## ParallelSplitShadowMap() [2/2]

osgShadow::ParallelSplitShadowMap::ParallelSplitShadowMap | ( | const ParallelSplitShadowMap & | es,
|  | const osg::CopyOp & | copyop = osg::CopyOp::SHALLOW_COPY )

References ParallelSplitShadowMap(), and osg::CopyOp::SHALLOW_COPY.

## ~ParallelSplitShadowMap()

virtual osgShadow::ParallelSplitShadowMap::~ParallelSplitShadowMap | ( |  | ) |

inline protected virtual

## Member Function Documentation

## cleanSceneGraph()

virtual void osgShadow::ParallelSplitShadowMap::cleanSceneGraph | ( |  | ) |

virtual

Clean scene graph from any shadow technique specific nodes, state and drawables.

Reimplemented from osgShadow::ShadowTechnique.

## cull()

virtual void osgShadow::ParallelSplitShadowMap::cull | ( | osgUtil::CullVisitor & | cv | ) |

virtual

Run the cull traversal of the ShadowedScene and set up the rendering for this ShadowTechnique.

Reimplemented from osgShadow::ShadowTechnique.

## enableShadowGLSLFiltering()

void osgShadow::ParallelSplitShadowMap::enableShadowGLSLFiltering | ( | bool | filtering = true | ) |

inline

enable / disable shadow filtering

## getAmbientBias()

const osg::Vec2 & osgShadow::ParallelSplitShadowMap::getAmbientBias | ( |  | ) | const

inline

Get the values for the ambient bias the shader will use.

## getMaxFarDistance()

double osgShadow::ParallelSplitShadowMap::getMaxFarDistance | ( |  | ) | const

inline

Get the max far distance

## getMinNearDistanceForSplits()

double osgShadow::ParallelSplitShadowMap::getMinNearDistanceForSplits | ( |  | ) | const

inline

Get min near distance for splits

## getMoveVCamBehindRCamFactor()

double osgShadow::ParallelSplitShadowMap::getMoveVCamBehindRCamFactor | ( |  | ) | const

inline

Get the factor for moving the virtual camera behind the real camera

## getPolygonOffset()

const osg::Vec2f & osgShadow::ParallelSplitShadowMap::getPolygonOffset | ( |  | ) | const

inline

Get the polygon offset osg::Vec2f(factor,unit)

## getSplitCalculationMode()

SplitCalcMode osgShadow::ParallelSplitShadowMap::getSplitCalculationMode | ( |  | ) | const

inline

get split calculation mode

## getTextureResolution()

unsigned int osgShadow::ParallelSplitShadowMap::getTextureResolution | ( |  | ) | const

inline

Get the texture resolution

## getUserLight()

const osg::Light * osgShadow::ParallelSplitShadowMap::getUserLight | ( |  | ) | const

inline

get the user defined light for shadow simulation

## init()

virtual void osgShadow::ParallelSplitShadowMap::init | ( |  | ) |

virtual

Initialize the ShadowedScene and local cached data structures.

Reimplemented from osgShadow::ShadowTechnique.

## META_Object()

osgShadow::ParallelSplitShadowMap::META_Object | ( | osgShadow | ,
|  | ParallelSplitShadowMap | )

References ParallelSplitShadowMap().

## releaseGLObjects()

virtual void osgShadow::ParallelSplitShadowMap::releaseGLObjects | ( | osg::State * | = 0 | ) | const

virtual

If State is non-zero, this function releases any associated OpenGL objects for the specified graphics context. Otherwise, releases OpenGL objects for all graphics contexts.

Implements osgShadow::ShadowTechnique.

## resizeGLObjectBuffers()

virtual void osgShadow::ParallelSplitShadowMap::resizeGLObjectBuffers | ( | unsigned int | maxSize | ) |

virtual

Resize any per context GLObject buffers to specified size.

Implements osgShadow::ShadowTechnique.

## setAmbientBias()

void osgShadow::ParallelSplitShadowMap::setAmbientBias | ( | const osg::Vec2 & | ambientBias | ) |

Set the values for the ambient bias the shader will use.

## setDebugColorOn()

void osgShadow::ParallelSplitShadowMap::setDebugColorOn | ( |  | ) |

inline

Switch on the debug coloring in GLSL (only the first 3 texture/splits showed for visualisation

## setFragmentShaderGenerator()

void osgShadow::ParallelSplitShadowMap::setFragmentShaderGenerator | ( | FragmentShaderGenerator * | fsw | ) |

inline

set fragment shader generator

## setMaxFarDistance()

void osgShadow::ParallelSplitShadowMap::setMaxFarDistance | ( | double | farDist | ) |

inline

Set the max far distance

## setMinNearDistanceForSplits()

void osgShadow::ParallelSplitShadowMap::setMinNearDistanceForSplits | ( | double | nd | ) |

inline

Set min near distance for splits

## setMoveVCamBehindRCamFactor()

void osgShadow::ParallelSplitShadowMap::setMoveVCamBehindRCamFactor | ( | double | distFactor | ) |

inline

Set the factor for moving the virtual camera behind the real camera

## setPolygonOffset()

void osgShadow::ParallelSplitShadowMap::setPolygonOffset | ( | const osg::Vec2f & | p | ) |

inline

Set the polygon offset osg::Vec2f(factor,unit)

## setSplitCalculationMode()

void osgShadow::ParallelSplitShadowMap::setSplitCalculationMode | ( | SplitCalcMode | scm = SPLIT_EXP | ) |

inline

set split calculation mode

References SPLIT_EXP.

## setTextureResolution()

void osgShadow::ParallelSplitShadowMap::setTextureResolution | ( | unsigned int | resolution | ) |

inline

Set the texture resolution

## setUserLight()

void osgShadow::ParallelSplitShadowMap::setUserLight | ( | osg::Light * | light | ) |

inline

set a user defined light for shadow simulation (sun light, ... ) when this light get passed to pssm, the scene's light are no longer collected and simulated. just this user passed light, it needs to be a directional light.

## update()

virtual void osgShadow::ParallelSplitShadowMap::update | ( | osg::NodeVisitor & | nv | ) |

virtual

Run the update traversal of the ShadowedScene and update any loca chached data structures.

Reimplemented from osgShadow::ShadowTechnique.

## Member Data Documentation

## _PSSMShadowSplitTextureMap

PSSMShadowSplitTextureMap osgShadow::ParallelSplitShadowMap::_PSSMShadowSplitTextureMap

protected

The documentation for this class was generated from the following file:

- ParallelSplitShadowMap