![]() |
OGRE 2.1
Object-Oriented Graphics Rendering Engine
|
#include <OgreForwardPlusBase.h>
Classes | |
struct | CachedGridBuffer |
Public Types | |
typedef vector< CachedGridBuffer >::type | CachedGridBufferVec |
enum | ForwardPlusMethods { MethodForward3D , MethodForwardClustered , NumForwardPlusMethods } |
Public Member Functions | |
ForwardPlusBase (SceneManager *sceneManager, bool decalsEnabled) | |
virtual | ~ForwardPlusBase () |
void | _changeRenderSystem (RenderSystem *newRs) |
virtual void | collectLights (Camera *camera)=0 |
virtual void | fillConstBufferData (Viewport *viewport, RenderTarget *renderTarget, IdString shaderSyntax, float *RESTRICT_ALIAS passBufferPtr) const =0 |
Fills 'passBufferPtr' with the necessary data for ForwardPlusBase rendering. | |
virtual size_t | getConstBufferSize (void) const =0 |
Returns the amount of bytes that fillConstBufferData is going to fill. | |
bool | getDebugMode (void) const |
bool | getDecalsEnabled (void) const |
bool | getEnableVpls (void) const |
bool | getFadeAttenuationRange (void) const |
bool | getFineLightMaskGranularity (void) const |
virtual ForwardPlusMethods | getForwardPlusMethod (void) const =0 |
TexBufferPacked * | getGlobalLightListBuffer (Camera *camera) const |
Cache the return value as internally we perform an O(N) search. | |
TexBufferPacked * | getGridBuffer (Camera *camera) const |
Cache the return value as internally we perform an O(N) search. | |
bool | isCacheDirty (const Camera *camera) const |
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 | |
void * | operator new (size_t sz, void *ptr) |
placement operator new | |
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 | setDebugMode (bool debugMode) |
Turns on visualization of light cell occupancy. | |
void | setEnableVpls (bool enable) |
void | setFadeAttenuationRange (bool fade) |
Attenuates the light by the attenuation range, causing smooth endings when at the end of the light range instead of a sudden sharp termination. | |
void | setFineLightMaskGranularity (bool useFineGranularity) |
Toggles whether light masks will be obeyed per object & per light by doing: if( movableObject->getLightMask() & light->getLightMask() ) doLighting( movableObject light ); Note this toggle only affects Forward+ lights. | |
virtual void | setHlmsPassProperties (Hlms *hlms) |
Static Public Attributes | |
static const size_t | MaxDecalRq |
static const size_t | MinDecalRq |
Ogre::ForwardPlusBase::ForwardPlusBase | ( | SceneManager * | sceneManager, |
bool | decalsEnabled | ||
) |
|
virtual |
void Ogre::ForwardPlusBase::_changeRenderSystem | ( | RenderSystem * | newRs | ) |
Implemented in Ogre::Forward3D, and Ogre::ForwardClustered.
|
pure virtual |
Fills 'passBufferPtr' with the necessary data for ForwardPlusBase rendering.
Implemented in Ogre::Forward3D, and Ogre::ForwardClustered.
Returns the amount of bytes that fillConstBufferData is going to fill.
Implemented in Ogre::Forward3D, and Ogre::ForwardClustered.
|
pure virtual |
Implemented in Ogre::Forward3D, and Ogre::ForwardClustered.
TexBufferPacked * Ogre::ForwardPlusBase::getGlobalLightListBuffer | ( | Camera * | camera | ) | const |
Cache the return value as internally we perform an O(N) search.
TexBufferPacked * Ogre::ForwardPlusBase::getGridBuffer | ( | Camera * | camera | ) | const |
Cache the return value as internally we perform an O(N) search.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
operator new, with debug line info
placement operator new
|
inlineinherited |
|
inlineinherited |
array operator new, with debug line info
Turns on visualization of light cell occupancy.
Attenuates the light by the attenuation range, causing smooth endings when at the end of the light range instead of a sudden sharp termination.
This isn't physically based (light's range is infinite), but looks very well, and makes more intuitive to manipulate a light by controlling its range instead of controlling its radius.
In math: atten *= max( (attenRange - fDistance) / attenRange, 0.0f );
Toggles whether light masks will be obeyed per object & per light by doing: if( movableObject->getLightMask() & light->getLightMask() ) doLighting( movableObject light ); Note this toggle only affects Forward+ lights.
You may want to see HlmsPbs::setFineLightMaskGranularity for control over Forward lights. If you only need coarse granularity control over Forward+ lights, you may get higher performance via CompositorPassSceneDef::mLightVisibilityMask (light_visibility_mask keyword in scripts).
Reimplemented in Ogre::Forward3D, and Ogre::ForwardClustered.