![]() |
OGRE-Next
2.3
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, bool cubemapProbesEnabled) | |
virtual | ~ForwardPlusBase () |
void | _changeRenderSystem (RenderSystem *newRs) |
void | _releaseManualHardwareResources () |
virtual void | collectLights (Camera *camera)=0 |
virtual void | fillConstBufferData (Viewport *viewport, bool bRequiresTextureFlipping, uint32 renderTargetHeight, IdString shaderSyntax, bool instancedStereo, float *RESTRICT_ALIAS passBufferPtr) const =0 |
Fills 'passBufferPtr' with the necessary data for ForwardPlusBase rendering. More... | |
virtual size_t | getConstBufferSize () const =0 |
Returns the amount of bytes that fillConstBufferData is going to fill. More... | |
bool | getDebugMode () const |
bool | getDecalsEnabled () const |
bool | getEnableVpls () const |
bool | getFadeAttenuationRange () const |
bool | getFineLightMaskGranularity () const |
virtual ForwardPlusMethods | getForwardPlusMethod () const =0 |
ReadOnlyBufferPacked * | getGlobalLightListBuffer (const Camera *camera) const |
Cache the return value as internally we perform an O(N) search. More... | |
TexBufferPacked * | getGridBuffer (const Camera *camera) const |
Cache the return value as internally we perform an O(N) search. More... | |
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 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 | setDebugMode (bool debugMode) |
Turns on visualization of light cell occupancy. More... | |
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. More... | |
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. More... | |
virtual void | setHlmsPassProperties (Hlms *hlms) |
Static Public Attributes | |
static const size_t | MaxCubemapProbeRq |
static const size_t | MaxDecalRq |
static const size_t | MinCubemapProbeRq |
static const size_t | MinDecalRq |
typedef vector<CachedGridBuffer>::type Ogre::ForwardPlusBase::CachedGridBufferVec |
Ogre::ForwardPlusBase::ForwardPlusBase | ( | SceneManager * | sceneManager, |
bool | decalsEnabled, | ||
bool | cubemapProbesEnabled | ||
) |
|
virtual |
void Ogre::ForwardPlusBase::_changeRenderSystem | ( | RenderSystem * | newRs | ) |
void Ogre::ForwardPlusBase::_releaseManualHardwareResources | ( | ) |
|
pure virtual |
Implemented in Ogre::ForwardClustered, and Ogre::Forward3D.
|
pure virtual |
Fills 'passBufferPtr' with the necessary data for ForwardPlusBase rendering.
Implemented in Ogre::ForwardClustered, and Ogre::Forward3D.
|
pure virtual |
Returns the amount of bytes that fillConstBufferData is going to fill.
Implemented in Ogre::ForwardClustered, and Ogre::Forward3D.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
pure virtual |
Implemented in Ogre::ForwardClustered, and Ogre::Forward3D.
ReadOnlyBufferPacked* Ogre::ForwardPlusBase::getGlobalLightListBuffer | ( | const Camera * | camera | ) | const |
Cache the return value as internally we perform an O(N) search.
TexBufferPacked* Ogre::ForwardPlusBase::getGridBuffer | ( | const Camera * | camera | ) | const |
Cache the return value as internally we perform an O(N) search.
bool Ogre::ForwardPlusBase::isCacheDirty | ( | const Camera * | camera | ) | const |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
operator new, with debug line info
|
inlineinherited |
placement operator new
|
inlineinherited |
|
inlineinherited |
array operator new, with debug line info
|
inline |
Turns on visualization of light cell occupancy.
|
inline |
|
inline |
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 );
|
inline |
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).
|
virtual |
Reimplemented in Ogre::ForwardClustered, and Ogre::Forward3D.
|
static |
|
static |
|
static |
|
static |