OSG
3.4.0
|
#include <ParallelSplitShadowMap.h>
Classes | |
class | FragmentShaderGenerator |
struct | PSSMShadowSplitTexture |
Public Types | |
enum | SplitCalcMode { SPLIT_LINEAR, SPLIT_EXP } |
![]() | |
enum | DataVariance { DYNAMIC, STATIC, UNSPECIFIED } |
Public Member Functions | |
ParallelSplitShadowMap (osg::Geode **debugGroup=NULL, int icountplanes=3) | |
ParallelSplitShadowMap (const ParallelSplitShadowMap &es, const osg::CopyOp ©op=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 |
![]() | |
ShadowTechnique () | |
ShadowTechnique (const ShadowTechnique &es, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY) | |
META_Object (osgShadow, ShadowTechnique) | |
ShadowedScene * | getShadowedScene () |
const ShadowedScene * | getShadowedScene () const |
virtual void | traverse (osg::NodeVisitor &nv) |
virtual void | dirty () |
![]() | |
Object () | |
Object (bool threadSafeRefUnref) | |
Object (const Object &, const CopyOp ©op=CopyOp::SHALLOW_COPY) | |
virtual Object * | cloneType () const =0 |
virtual Object * | clone (const CopyOp &) const =0 |
virtual bool | isSameKindAs (const Object *) const |
virtual const char * | libraryName () const =0 |
virtual const char * | className () const =0 |
std::string | getCompoundClassName () const |
virtual Node * | asNode () |
virtual const Node * | asNode () const |
virtual NodeVisitor * | asNodeVisitor () |
virtual const NodeVisitor * | asNodeVisitor () const |
virtual StateAttribute * | asStateAttribute () |
virtual const StateAttribute * | asStateAttribute () const |
virtual Uniform * | asUniform () |
virtual const Uniform * | asUniform () 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) |
osg::UserDataContainer * | getUserDataContainer () |
const osg::UserDataContainer * | getUserDataContainer () const |
osg::UserDataContainer * | getOrCreateUserDataContainer () |
virtual void | setUserData (Referenced *obj) |
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) |
virtual void | resizeGLObjectBuffers (unsigned int) |
virtual void | releaseGLObjects (osg::State *=0) const |
template<typename T > | |
BoolValueObject UCharValueObject UShortValueObject UIntValueObject DoubleValueObject Vec3fValueObject Vec2dValueObject Vec4dValueObject PlaneValueObject MatrixdValueObject BoundingBoxdValueObject BoundingSpheredValueObject bool | getUserValue (const std::string &name, T &value) const |
![]() | |
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 () |
![]() | |
osg::Vec3 | computeOrthogonalVector (const osg::Vec3 &direction) const |
virtual | ~ShadowTechnique () |
![]() | |
virtual | ~Object () |
![]() | |
virtual | ~Referenced () |
void | signalObserversAndDelete (bool signalDelete, bool doDelete) const |
void | deleteUsingDeleteHandler () const |
Protected Attributes | |
PSSMShadowSplitTextureMap | _PSSMShadowSplitTextureMap |
![]() | |
ShadowedScene * | _shadowedScene |
bool | _dirty |
![]() | |
std::string | _name |
DataVariance | _dataVariance |
osg::UserDataContainer * | _userDataContainer |
![]() | |
OpenThreads::AtomicPtr | _observerSet |
OpenThreads::Atomic | _refCount |
Additional Inherited Members | |
![]() | |
static OpenThreads::Mutex * | getGlobalReferencedMutex () |
static void | setThreadSafeReferenceCounting (bool enableThreadSafeReferenceCounting) |
static bool | getThreadSafeReferenceCounting () |
static void | setDeleteHandler (DeleteHandler *handler) |
static DeleteHandler * | getDeleteHandler () |
Definition at line 38 of file ParallelSplitShadowMap.h.
|
protected |
Definition at line 175 of file ParallelSplitShadowMap.h.
Enumerator | |
---|---|
SPLIT_LINEAR | |
SPLIT_EXP |
Definition at line 125 of file ParallelSplitShadowMap.h.
osgShadow::ParallelSplitShadowMap::ParallelSplitShadowMap | ( | osg::Geode ** | debugGroup = NULL , |
int | icountplanes = 3 |
||
) |
osgShadow::ParallelSplitShadowMap::ParallelSplitShadowMap | ( | const ParallelSplitShadowMap & | es, |
const osg::CopyOp & | copyop = osg::CopyOp::SHALLOW_COPY |
||
) |
|
inlineprotectedvirtual |
Definition at line 139 of file ParallelSplitShadowMap.h.
|
virtual |
Clean scene graph from any shadow technique specific nodes, state and drawables.
Reimplemented from osgShadow::ShadowTechnique.
|
virtual |
Run the cull traversal of the ShadowedScene and set up the rendering for this ShadowTechnique.
Reimplemented from osgShadow::ShadowTechnique.
|
inline |
enable / disable shadow filtering
Definition at line 123 of file ParallelSplitShadowMap.h.
|
inline |
Get the values for the ambient bias the shader will use.
Definition at line 106 of file ParallelSplitShadowMap.h.
|
inline |
Get the max far distance
Definition at line 79 of file ParallelSplitShadowMap.h.
|
inline |
Get min near distance for splits
Definition at line 91 of file ParallelSplitShadowMap.h.
|
inline |
Get the factor for moving the virtual camera behind the real camera
Definition at line 85 of file ParallelSplitShadowMap.h.
|
inline |
Get the polygon offset osg::Vec2f(factor,unit)
Definition at line 67 of file ParallelSplitShadowMap.h.
|
inline |
get split calculation mode
Definition at line 134 of file ParallelSplitShadowMap.h.
|
inline |
Get the texture resolution
Definition at line 73 of file ParallelSplitShadowMap.h.
|
inline |
get the user defined light for shadow simulation
Definition at line 100 of file ParallelSplitShadowMap.h.
|
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.
|
inline |
Switch on the debug coloring in GLSL (only the first 3 texture/splits showed for visualisation
Definition at line 61 of file ParallelSplitShadowMap.h.
|
inline |
set fragment shader generator
Definition at line 120 of file ParallelSplitShadowMap.h.
|
inline |
Set the max far distance
Definition at line 76 of file ParallelSplitShadowMap.h.
|
inline |
Set min near distance for splits
Definition at line 88 of file ParallelSplitShadowMap.h.
|
inline |
Set the factor for moving the virtual camera behind the real camera
Definition at line 82 of file ParallelSplitShadowMap.h.
|
inline |
Set the polygon offset osg::Vec2f(factor,unit)
Definition at line 64 of file ParallelSplitShadowMap.h.
|
inline |
set split calculation mode
Definition at line 131 of file ParallelSplitShadowMap.h.
|
inline |
Set the texture resolution
Definition at line 70 of file ParallelSplitShadowMap.h.
|
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.
Definition at line 97 of file ParallelSplitShadowMap.h.
|
virtual |
Run the update traversal of the ShadowedScene and update any loca chached data structures.
Reimplemented from osgShadow::ShadowTechnique.
|
protected |
Definition at line 176 of file ParallelSplitShadowMap.h.