openscenegraph
Classes | Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
osgShadow::ParallelSplitShadowMap Class Reference
Inheritance diagram for osgShadow::ParallelSplitShadowMap:
osgShadow::ShadowTechnique osg::Object osg::Referenced

List of all members.

Classes

class  FragmentShaderGenerator
struct  PSSMShadowSplitTexture

Public Types

enum  SplitCalcMode { SPLIT_LINEAR, SPLIT_EXP }

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::Vec2fgetPolygonOffset () 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::LightgetUserLight () const
void setAmbientBias (const osg::Vec2 &ambientBias)
const osg::Vec2getAmbientBias () const
void setFragmentShaderGenerator (FragmentShaderGenerator *fsw)
void enableShadowGLSLFiltering (bool filtering=true)
void setSplitCalculationMode (SplitCalcMode scm=SPLIT_EXP)
SplitCalcMode getSplitCalculationMode () const

Protected Types

typedef std::map< unsigned int,
PSSMShadowSplitTexture
PSSMShadowSplitTextureMap

Protected Member Functions

virtual ~ParallelSplitShadowMap ()

Protected Attributes

PSSMShadowSplitTextureMap _PSSMShadowSplitTextureMap

Member Typedef Documentation


Member Enumeration Documentation

Enumerator:
SPLIT_LINEAR 
SPLIT_EXP 

Constructor & Destructor Documentation

osgShadow::ParallelSplitShadowMap::ParallelSplitShadowMap ( osg::Geode **  debugGroup = NULL,
int  icountplanes = 3 
)
osgShadow::ParallelSplitShadowMap::ParallelSplitShadowMap ( const ParallelSplitShadowMap es,
const osg::CopyOp copyop = osg::CopyOp::SHALLOW_COPY 
)
virtual osgShadow::ParallelSplitShadowMap::~ParallelSplitShadowMap ( ) [inline, protected, virtual]

Member Function Documentation

virtual void osgShadow::ParallelSplitShadowMap::cleanSceneGraph ( ) [virtual]

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

Reimplemented from osgShadow::ShadowTechnique.

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.

void osgShadow::ParallelSplitShadowMap::enableShadowGLSLFiltering ( bool  filtering = true) [inline]

enable / disable shadow filtering

const osg::Vec2& osgShadow::ParallelSplitShadowMap::getAmbientBias ( ) const [inline]

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

double osgShadow::ParallelSplitShadowMap::getMaxFarDistance ( ) const [inline]

Get the max far distance

double osgShadow::ParallelSplitShadowMap::getMinNearDistanceForSplits ( ) const [inline]

Get min near distance for splits

double osgShadow::ParallelSplitShadowMap::getMoveVCamBehindRCamFactor ( ) const [inline]

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

const osg::Vec2f& osgShadow::ParallelSplitShadowMap::getPolygonOffset ( ) const [inline]

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

SplitCalcMode osgShadow::ParallelSplitShadowMap::getSplitCalculationMode ( ) const [inline]

get split calculation mode

unsigned int osgShadow::ParallelSplitShadowMap::getTextureResolution ( ) const [inline]

Get the texture resolution

const osg::Light* osgShadow::ParallelSplitShadowMap::getUserLight ( ) const [inline]

get the user defined light for shadow simulation

virtual void osgShadow::ParallelSplitShadowMap::init ( ) [virtual]

Initialize the ShadowedScene and local cached data structures.

Reimplemented from osgShadow::ShadowTechnique.

osgShadow::ParallelSplitShadowMap::META_Object ( osgShadow  ,
ParallelSplitShadowMap   
)
void osgShadow::ParallelSplitShadowMap::setAmbientBias ( const osg::Vec2 ambientBias)

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

void osgShadow::ParallelSplitShadowMap::setDebugColorOn ( ) [inline]

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

void osgShadow::ParallelSplitShadowMap::setFragmentShaderGenerator ( FragmentShaderGenerator fsw) [inline]

set fragment shader generator

void osgShadow::ParallelSplitShadowMap::setMaxFarDistance ( double  farDist) [inline]

Set the max far distance

void osgShadow::ParallelSplitShadowMap::setMinNearDistanceForSplits ( double  nd) [inline]

Set min near distance for splits

void osgShadow::ParallelSplitShadowMap::setMoveVCamBehindRCamFactor ( double  distFactor) [inline]

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

void osgShadow::ParallelSplitShadowMap::setPolygonOffset ( const osg::Vec2f p) [inline]

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

void osgShadow::ParallelSplitShadowMap::setSplitCalculationMode ( SplitCalcMode  scm = SPLIT_EXP) [inline]

set split calculation mode

void osgShadow::ParallelSplitShadowMap::setTextureResolution ( unsigned int  resolution) [inline]

Set the texture resolution

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.

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


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