OGRE-Next  2.3
Object-Oriented Graphics Rendering Engine
Ogre::FocusedShadowCameraSetup Class Reference

Implements the uniform shadow mapping algorithm in focused mode. More...

#include <OgreShadowCameraSetupFocused.h>

+ Inheritance diagram for Ogre::FocusedShadowCameraSetup:

Public Member Functions

 FocusedShadowCameraSetup ()
 Default constructor. More...
 
virtual ~FocusedShadowCameraSetup ()
 Default destructor. More...
 
Real getMaxDistance () const
 
Real getMinDistance () const
 
void getShadowCamera (const SceneManager *sm, const Camera *cam, const Light *light, Camera *texCam, size_t iteration, const Vector2 &viewportRealSize) const override
 Returns a uniform shadow camera with a focused view. More...
 
Real getXYPadding () const
 See FocusedShadowCameraSetup::setXYPadding. More...
 
void operator delete (void *ptr)
 
void operator delete (void *ptr, const char *, int, const char *)
 
void operator delete (void *ptr, void *)
 
void operator delete[] (void *ptr)
 
void operator delete[] (void *ptr, const char *, int, const char *)
 
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 More...
 
void * operator new (size_t sz, void *ptr)
 placement operator new More...
 
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 More...
 
void setXYPadding (Real pad)
 setXYPadding FocusedShadowCameraSetup tries to make the shadow mapping camera fit the casters as tight as possible to minimize aliasing. More...
 

Static Public Member Functions

static void setUseEsm (bool useEsm)
 

Detailed Description

Implements the uniform shadow mapping algorithm in focused mode.

Remarks
Differs from the default shadow mapping projection in that it focuses the shadow map on the visible areas of the scene. This results in better shadow map texel usage, at the expense of some 'swimming' of the shadow texture on receivers as the basis is constantly being reevaluated.
Note
Original implementation by Matthias Fink matth.nosp@m.ias..nosp@m.fink@.nosp@m.web..nosp@m.de, 2006.

Constructor & Destructor Documentation

◆ FocusedShadowCameraSetup()

Ogre::FocusedShadowCameraSetup::FocusedShadowCameraSetup ( )

Default constructor.

Remarks
Temporary frustum and camera set up here.

◆ ~FocusedShadowCameraSetup()

virtual Ogre::FocusedShadowCameraSetup::~FocusedShadowCameraSetup ( )
virtual

Default destructor.

Remarks
Temporary frustum and camera destroyed here.

Member Function Documentation

◆ getMaxDistance()

Real Ogre::ShadowCameraSetup::getMaxDistance ( ) const
inlineinherited

◆ getMinDistance()

Real Ogre::ShadowCameraSetup::getMinDistance ( ) const
inlineinherited

◆ getShadowCamera()

void Ogre::FocusedShadowCameraSetup::getShadowCamera ( const SceneManager sm,
const Camera cam,
const Light light,
Camera texCam,
size_t  iteration,
const Vector2 viewportRealSize 
) const
overridevirtual

Returns a uniform shadow camera with a focused view.

Reimplemented from Ogre::DefaultShadowCameraSetup.

Reimplemented in Ogre::PSSMShadowCameraSetup.

◆ getXYPadding()

Real Ogre::FocusedShadowCameraSetup::getXYPadding ( ) const
inline

◆ operator delete() [1/3]

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete ( void *  ptr)
inlineinherited

◆ operator delete() [2/3]

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete ( void *  ptr,
const char *  ,
int  ,
const char *   
)
inlineinherited

◆ operator delete() [3/3]

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete ( void *  ptr,
void *   
)
inlineinherited

◆ operator delete[]() [1/2]

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete[] ( void *  ptr)
inlineinherited

◆ operator delete[]() [2/2]

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete[] ( void *  ptr,
const char *  ,
int  ,
const char *   
)
inlineinherited

◆ operator new() [1/3]

template<class Alloc >
void* Ogre::AllocatedObject< Alloc >::operator new ( size_t  sz)
inlineinherited

◆ operator new() [2/3]

template<class Alloc >
void* Ogre::AllocatedObject< Alloc >::operator new ( size_t  sz,
const char *  file,
int  line,
const char *  func 
)
inlineinherited

operator new, with debug line info

◆ operator new() [3/3]

template<class Alloc >
void* Ogre::AllocatedObject< Alloc >::operator new ( size_t  sz,
void *  ptr 
)
inlineinherited

placement operator new

◆ operator new[]() [1/2]

template<class Alloc >
void* Ogre::AllocatedObject< Alloc >::operator new[] ( size_t  sz)
inlineinherited

◆ operator new[]() [2/2]

template<class Alloc >
void* Ogre::AllocatedObject< Alloc >::operator new[] ( size_t  sz,
const char *  file,
int  line,
const char *  func 
)
inlineinherited

array operator new, with debug line info

◆ setUseEsm()

static void Ogre::ShadowCameraSetup::setUseEsm ( bool  useEsm)
inlinestaticinherited

◆ setXYPadding()

void Ogre::FocusedShadowCameraSetup::setXYPadding ( Real  pad)
inline

setXYPadding FocusedShadowCameraSetup tries to make the shadow mapping camera fit the casters as tight as possible to minimize aliasing.

But due to various math issues sometimes it ends up being too tight.

If you experience missing shadows or with gaps/holes you may need to increase the padding.

Most likely you want the reverse. In particular circumstances you want maximum quality thus you want to minimize this padding

Parameters
padValue in range [0; inf) Negative values may cause glitches

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