OGRE
1.9.0
|
Implements the uniform shadow mapping algorithm in focused mode. More...
#include <OgreShadowCameraSetupFocused.h>
Classes | |
class | PointListBody |
Internal class holding a point list representation of a convex body. More... | |
Public Member Functions | |
FocusedShadowCameraSetup (void) | |
Default constructor. | |
virtual | ~FocusedShadowCameraSetup (void) |
Default destructor. | |
virtual void | getShadowCamera (const SceneManager *sm, const Camera *cam, const Viewport *vp, const Light *light, Camera *texCam, size_t iteration) const |
Returns a uniform shadow camera with a focused view. | |
bool | getUseAggressiveFocusRegion () const |
void | operator delete (void *ptr) |
void | operator delete (void *ptr) |
void | operator delete (void *ptr, const char *, int, const char *) |
void | operator delete (void *ptr, const char *, int, const char *) |
void | operator delete (void *ptr, void *) |
void | operator delete (void *ptr, void *) |
void | operator delete[] (void *ptr) |
void | operator delete[] (void *ptr) |
void | operator delete[] (void *ptr, const char *, int, const char *) |
void | operator delete[] (void *ptr, const char *, int, const char *) |
void * | operator new (size_t sz) |
void * | operator new (size_t sz) |
void * | operator new (size_t sz, const char *file, int line, const char *func) |
operator new, with debug line info | |
void * | operator new (size_t sz, const char *file, int line, const char *func) |
operator new, with debug line info | |
void * | operator new (size_t sz, void *ptr) |
placement operator new | |
void * | operator new (size_t sz, void *ptr) |
placement operator new | |
void * | operator new[] (size_t sz) |
void * | operator new[] (size_t sz) |
void * | operator new[] (size_t sz, const char *file, int line, const char *func) |
array operator new, with debug line info | |
void * | operator new[] (size_t sz, const char *file, int line, const char *func) |
array operator new, with debug line info | |
void | setUseAggressiveFocusRegion (bool aggressive) |
Sets whether or not to use the more aggressive approach to deciding on the focus region or not. | |
Protected Member Functions | |
Matrix4 | buildViewMatrix (const Vector3 &pos, const Vector3 &dir, const Vector3 &up) const |
Builds a view matrix. | |
void | calculateB (const SceneManager &sm, const Camera &cam, const Light &light, const AxisAlignedBox &sceneBB, const AxisAlignedBox &receiverBB, PointListBody *out_bodyB) const |
Calculates the intersection bodyB. | |
void | calculateLVS (const SceneManager &sm, const Camera &cam, const Light &light, const AxisAlignedBox &sceneBB, PointListBody *out_LVS) const |
Calculates the bodyLVS. | |
void | calculateShadowMappingMatrix (const SceneManager &sm, const Camera &cam, const Light &light, Matrix4 *out_view, Matrix4 *out_proj, Camera *out_cam) const |
Calculates the standard shadow mapping matrix. | |
Vector3 | getLSProjViewDir (const Matrix4 &lightSpace, const Camera &cam, const PointListBody &bodyLVS) const |
Returns the projection view direction. | |
Vector3 | getNearCameraPoint_ws (const Matrix4 &viewMatrix, const PointListBody &bodyLVS) const |
Returns a valid near-point seen by the camera. | |
Matrix4 | transformToUnitCube (const Matrix4 &m, const PointListBody &body) const |
Transforms a given body to the unit cube (-1,-1,-1) / (+1,+1,+1) with a specific shadow matrix enabled. | |
Protected Attributes | |
ConvexBody | mBodyB |
Camera * | mLightFrustumCamera |
Temporary preallocated camera to set up a light frustum for clipping in FocusedShadowCameraSetup::calculateB. | |
bool | mLightFrustumCameraCalculated |
PointListBody | mPointListBodyB |
PointListBody | mPointListBodyLVS |
Frustum * | mTempFrustum |
Temporary preallocated frustum to set up a projection matrix in calculateShadowMappingMatrix(). | |
bool | mUseAggressiveRegion |
Use tighter focus region? | |
Static Protected Attributes | |
static const Matrix4 | msLightSpaceToNormal |
static const Matrix4 | msNormalToLightSpace |
Transform to or from light space as defined by Wimmer et al. | |
Implements the uniform shadow mapping algorithm in focused mode.
Definition at line 58 of file OgreShadowCameraSetupFocused.h.
Ogre::FocusedShadowCameraSetup::FocusedShadowCameraSetup | ( | void | ) |
Default constructor.
|
virtual |
Default destructor.
|
protected |
Builds a view matrix.
|
protected |
Calculates the intersection bodyB.
sm | Scene manager. |
cam | Currently active camera. |
light | Currently active light. |
sceneBB | Scene bounding box for clipping operations. |
receiverBB | Bounding information for just the receivers. |
out_bodyB | Final intersection bodyB point list. |
|
protected |
Calculates the bodyLVS.
cam | Current viewer camera. |
light | Current light. |
sceneBB | Holds all potential occluders / receivers as one single bounding box of the currently active scene node. |
out_LVS | Intersection body LVS (world coordinates). |
|
protected |
Calculates the standard shadow mapping matrix.
sm | Scene manager. |
cam | Currently active camera. |
light | Currently active light. |
out_view | Calculated uniform view shadow mapping matrix (may be NULL ). |
out_proj | Calculated uniform projection shadow mapping matrix (may be NULL ). |
out_cam | Calculated uniform shadow camera (may be NULL ). |
|
protected |
Returns the projection view direction.
lightSpace | Matrix of the light space transformation. |
cam | Current viewer camera. |
bodyLVS | Intersection body LVS (relevant space in front of the camera). |
|
protected |
Returns a valid near-point seen by the camera.
viewMatrix | View matrix of the current camera. |
bodyLVS | Intersection body LVS (relevant space in front of the camera). |
|
virtual |
Returns a uniform shadow camera with a focused view.
Implements Ogre::ShadowCameraSetup.
Reimplemented in Ogre::LiSPSMShadowCameraSetup, and Ogre::PSSMShadowCameraSetup.
bool Ogre::FocusedShadowCameraSetup::getUseAggressiveFocusRegion | ( | ) | const |
Definition at line 305 of file OgreShadowCameraSetupFocused.h.
References mUseAggressiveRegion.
|
inherited |
Definition at line 96 of file OgreMemoryAllocatedObject.h.
|
inherited |
Definition at line 96 of file OgreMemoryAllocatedObject.h.
|
inherited |
Definition at line 108 of file OgreMemoryAllocatedObject.h.
|
inherited |
Definition at line 108 of file OgreMemoryAllocatedObject.h.
|
inherited |
Definition at line 102 of file OgreMemoryAllocatedObject.h.
|
inherited |
Definition at line 102 of file OgreMemoryAllocatedObject.h.
|
inherited |
Definition at line 113 of file OgreMemoryAllocatedObject.h.
|
inherited |
Definition at line 113 of file OgreMemoryAllocatedObject.h.
|
inherited |
Definition at line 119 of file OgreMemoryAllocatedObject.h.
|
inherited |
Definition at line 119 of file OgreMemoryAllocatedObject.h.
|
inherited |
Definition at line 73 of file OgreMemoryAllocatedObject.h.
|
inherited |
Definition at line 73 of file OgreMemoryAllocatedObject.h.
|
inherited |
operator new, with debug line info
Definition at line 68 of file OgreMemoryAllocatedObject.h.
|
inherited |
operator new, with debug line info
Definition at line 68 of file OgreMemoryAllocatedObject.h.
|
inherited |
placement operator new
Definition at line 79 of file OgreMemoryAllocatedObject.h.
|
inherited |
placement operator new
Definition at line 79 of file OgreMemoryAllocatedObject.h.
|
inherited |
Definition at line 91 of file OgreMemoryAllocatedObject.h.
|
inherited |
Definition at line 91 of file OgreMemoryAllocatedObject.h.
|
inherited |
array operator new, with debug line info
Definition at line 86 of file OgreMemoryAllocatedObject.h.
|
inherited |
array operator new, with debug line info
Definition at line 86 of file OgreMemoryAllocatedObject.h.
void Ogre::FocusedShadowCameraSetup::setUseAggressiveFocusRegion | ( | bool | aggressive | ) |
Sets whether or not to use the more aggressive approach to deciding on the focus region or not.
aggressive | True to use the more aggressive approach, false otherwise. |
Definition at line 303 of file OgreShadowCameraSetupFocused.h.
References mUseAggressiveRegion.
|
protected |
Transforms a given body to the unit cube (-1,-1,-1) / (+1,+1,+1) with a specific shadow matrix enabled.
m | Transformation matrix applied on the point list body. |
body | Contains the points of the extends of all valid scene elements which are mapped to the unit cube. |
|
mutableprotected |
Definition at line 145 of file OgreShadowCameraSetupFocused.h.
|
protected |
Temporary preallocated camera to set up a light frustum for clipping in FocusedShadowCameraSetup::calculateB.
Definition at line 78 of file OgreShadowCameraSetupFocused.h.
|
mutableprotected |
Definition at line 79 of file OgreShadowCameraSetupFocused.h.
|
mutableprotected |
Definition at line 146 of file OgreShadowCameraSetupFocused.h.
|
mutableprotected |
Definition at line 147 of file OgreShadowCameraSetupFocused.h.
|
staticprotected |
Definition at line 69 of file OgreShadowCameraSetupFocused.h.
|
staticprotected |
Transform to or from light space as defined by Wimmer et al.
Definition at line 68 of file OgreShadowCameraSetupFocused.h.
|
protected |
Temporary preallocated frustum to set up a projection matrix in calculateShadowMappingMatrix().
Definition at line 74 of file OgreShadowCameraSetupFocused.h.
|
protected |
Use tighter focus region?
Definition at line 82 of file OgreShadowCameraSetupFocused.h.
Referenced by getUseAggressiveFocusRegion(), and setUseAggressiveFocusRegion().