sgShadowProjector Class Reference

#include <sgObjectBasedProjector.h>

Inheritance diagram for sgShadowProjector:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 sgShadowProjector (SceneObject *parentobject, LightInfo *light, TSShapeInstance *shapeinstance)
 ~sgShadowProjector ()
virtual void sgRender (F32 camdist)
bool shouldRender (F32 camDist)
void render (F32 camDist)
U32 getLastRenderTime () const

Static Public Member Functions

static void collisionCallback (SceneObject *obj, void *shadow)
static void dtsCallback (SceneObject *obj, void *shadow)

Public Attributes

F32 sgProjectionScale
Box3F sgShadowBox
SphereF sgShadowSphere
Point3F sgShadowPoly [4]
DepthSortList sgPolyGrinder
U32 sgLastRenderTime

Protected Types

 sgspLastSelfShadowLOD = 3
 sgspMaxLOD = 5
 sgsm_1_1
 sgsm_2_0
 sgsmHigh_2_0
enum  {
  sgspLastSelfShadowLOD = 3,
  sgspMaxLOD = 5
}
enum  sgShaderModel {
  sgsm_1_1,
  sgsm_2_0,
  sgsmHigh_2_0
}

Protected Member Functions

sgShaderModel sgCalculateShaderModel ()
bool sgAllowSelfShadowing ()
void sgSetupShadowType ()
U32 sgGetShadowSize ()
void sgGetVariables ()
void sgGetLightSpaceBasedOnY ()
MatrixF sgGetAdjustedParentWorldTransform ()
virtual void sgCalculateBoundingBox ()
void sgDebugRenderProjectionVolume ()
void sgRenderShape (TSShapeInstance *shapeinst, const MatrixF &trans1, const MatrixF &trans2, bool builder)
void sgRenderShadowBuffer ()
Point3F sgGetCompositeShadowLightDirection ()
void sgClear ()
template<class T>
void sgDirtySync (T &dst, T src)

Static Protected Member Functions

static void texCB (GFXTexCallbackCode code, void *userData)

Protected Attributes

Box3F sgBoundingBox
SceneObjectsgParentObject
bool sgEnable
bool sgCanMove
bool sgCanRTT
bool sgCanSelfShadow
U32 sgRequestedShadowSize
U32 sgFrameSkip
F32 sgMaxVisibleDistance
F32 sgProjectionDistance
F32 sgSphereAdjust
F32 sgBias
bool sgDTSShadow
F32 sgIntensity
sgLightInfosgLight
Point3F sgLightVector
MatrixF sgLightSpaceY
MatrixF sgLightToWorldY
MatrixF sgWorldToLightY
MatrixF sgLightProjToLightY
MatrixF sgWorldToLightProjY
Point4F sgProjectionInfo
Point2I sgShadowLODSize [sgspMaxLOD]
sgShadow sgShadowLODObject
GFXStateBlockRef mRenderShadowBufferSB
GFXStateBlockRef mRenderAFastSB
GFXStateBlockRef mRenderASB
GFXStateBlockRef mRenderBFastSB
GFXStateBlockRef mRenderBSB
GFXShaderConstBufferRef mShadowBuilderConsts
GFXShaderConstBufferRef mShadowConsts
GFXShaderConstBufferRef mShadowFastPartitionConsts
GFXShaderConstHandlemShadowBuilderLightSpaceSC
GFXShaderConstHandlemShadowBuilderProjInfoSC
GFXShaderConstHandlemShadowToScreenSC
GFXShaderConstHandlemShadowToLightSpaceSC
GFXShaderConstHandlemShadowProjInfoSC
GFXShaderConstHandlemShadowBiasSC
GFXShaderConstHandlemShadowLightVectorSC
GFXShaderConstHandlemShadowStrideSC
GFXShaderConstHandlemShadowColorSC
GFXShaderConstHandlemShadowFastPartitionToScreenSC
GFXShaderConstHandlemShadowFastPartitionToLightSpaceSC
GFXShaderConstHandlemShadowFastPartitionProjInfoSC
GFXShaderConstHandlemShadowFastPartitionBiasSC
GFXShaderConstHandlemShadowFastPartitionLightVectorSC
GFXShaderConstHandlemShadowFastPartitionStrideSC
GFXShaderConstHandlemShadowFastPartitionColorSC
ShaderDatasgShadowBuilderShader
ShaderDatasgShadowShader
ShaderDatasgShadowShaderFastPartition
ShaderDatasgShadowBuilderShader_2_0
ShaderDatasgShadowBuilderShader_1_1
ShaderDatasgShadowShaderHigh_2_0
ShaderDatasgShadowShader_2_0
ShaderDatasgShadowShader_1_1
TSShapeInstancesgShapeInstance
Vector< SceneObject * > sgShadowReceivers
Vector< DepthSortList::Poly > sgShadowPolys
Vector< Point3FsgShadowPoints
GFXVertexBufferHandle< GFXVertexPN > sgShadowBuffer
GFXTextureTargetRef mShadowBufferTarget
Point3F testRenderPoints [8]
Point3F testRenderPointsWorld [8]
bool sgFirstMove
bool sgFirstRTT
sgShaderModel sgCachedShaderModel
Point3F sgCachedParentPos
U32 sgLastFrame
U32 sgCachedTextureDetailSize
U32 sgCachedParentTransformHash
U32 sgPreviousShadowTime
VectorF sgPreviousShadowLightingVector
bool sgShadowTypeDirty
S32 mTexCallbackHandle

Classes

class  sgShadow

Member Enumeration Documentation

anonymous enum [protected]

Enumerator:
sgspLastSelfShadowLOD 
sgspMaxLOD 

Enumerator:
sgsm_1_1 
sgsm_2_0 
sgsmHigh_2_0 


Constructor & Destructor Documentation

sgShadowProjector::sgShadowProjector ( SceneObject parentobject,
LightInfo light,
TSShapeInstance shapeinstance 
)

sgShadowProjector::~sgShadowProjector (  ) 


Member Function Documentation

sgShaderModel sgShadowProjector::sgCalculateShaderModel (  )  [protected]

bool sgShadowProjector::sgAllowSelfShadowing (  )  [inline, protected]

void sgShadowProjector::sgSetupShadowType (  )  [protected]

U32 sgShadowProjector::sgGetShadowSize (  )  [inline, protected]

void sgShadowProjector::sgGetVariables (  )  [protected]

void sgShadowProjector::sgGetLightSpaceBasedOnY (  )  [protected]

MatrixF sgShadowProjector::sgGetAdjustedParentWorldTransform (  )  [protected]

virtual void sgShadowProjector::sgCalculateBoundingBox (  )  [protected, virtual]

void sgShadowProjector::sgDebugRenderProjectionVolume (  )  [protected]

void sgShadowProjector::sgRenderShape ( TSShapeInstance shapeinst,
const MatrixF trans1,
const MatrixF trans2,
bool  builder 
) [protected]

void sgShadowProjector::sgRenderShadowBuffer (  )  [protected]

Point3F sgShadowProjector::sgGetCompositeShadowLightDirection (  )  [protected]

void sgShadowProjector::sgClear (  )  [protected]

template<class T>
void sgShadowProjector::sgDirtySync ( T &  dst,
src 
) [inline, protected]

static void sgShadowProjector::texCB ( GFXTexCallbackCode  code,
void userData 
) [static, protected]

virtual void sgShadowProjector::sgRender ( F32  camdist  )  [virtual]

static void sgShadowProjector::collisionCallback ( SceneObject obj,
void shadow 
) [static]

static void sgShadowProjector::dtsCallback ( SceneObject obj,
void shadow 
) [static]

bool sgShadowProjector::shouldRender ( F32  camDist  )  [virtual]

Implements ShadowBase.

void sgShadowProjector::render ( F32  camDist  )  [virtual]

Implements ShadowBase.

U32 sgShadowProjector::getLastRenderTime (  )  const [inline, virtual]

Implements ShadowBase.


Member Data Documentation

Vector<DepthSortList::Poly> sgShadowProjector::sgShadowPolys [protected]