|
| ForwardClustered (uint32 width, uint32 height, uint32 numSlices, uint32 lightsPerCell, uint32 decalsPerCell, uint32 cubemapProbesPerCell, float minDistance, float maxDistance, SceneManager *sceneManager) |
|
virtual | ~ForwardClustered () |
|
void | _changeRenderSystem (RenderSystem *newRs) |
|
virtual void | collectLights (Camera *camera) |
|
virtual void | execute (size_t threadId, size_t numThreads) |
| Overload this function to perform whatever you want. More...
|
|
virtual void | fillConstBufferData (Viewport *viewport, TextureGpu *renderTarget, IdString shaderSyntax, bool instancedStereo, float *RESTRICT_ALIAS passBufferPtr) const |
| Fills 'passBufferPtr' with the necessary data for ForwardClustered rendering. More...
|
|
virtual size_t | getConstBufferSize (void) const |
| Returns the amount of bytes that fillConstBufferData is going to fill. More...
|
|
bool | getDebugFrustum (void) const |
|
bool | getDebugMode (void) const |
|
bool | getDecalsEnabled (void) const |
|
uint32 | getDecalsPerCell (void) const |
|
bool | getEnableVpls (void) const |
|
bool | getFadeAttenuationRange (void) const |
|
bool | getFineLightMaskGranularity (void) const |
|
virtual ForwardPlusMethods | getForwardPlusMethod (void) const |
|
bool | getFreezeDebugFrustum (void) const |
|
TexBufferPacked * | 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...
|
|
uint32 | getHeight (void) const |
|
uint32 | getLightsPerCell (void) const |
|
float | getMaxDistance (void) const |
|
float | getMinDistance (void) const |
|
uint32 | getNumSlices (void) const |
|
uint32 | getWidth (void) const |
|
bool | isCacheDirty (const Camera *camera) const |
|
void | operator delete (void *ptr) |
|
void | operator delete (void *ptr, void *) |
|
void | operator delete (void *ptr, const char *, int, const char *) |
|
void | operator delete[] (void *ptr) |
|
void | operator delete[] (void *ptr, const char *, int, const char *) |
|
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 * | operator new (size_t sz, void *ptr) |
| placement operator new More...
|
|
void * | operator new[] (size_t sz, const char *file, int line, const char *func) |
| array operator new, with debug line info More...
|
|
void * | operator new[] (size_t sz) |
|
void | setDebugFrustum (bool bEnableDebugFrustumWireAabb) |
|
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...
|
|
void | setFreezeDebugFrustum (bool freezeDebugFrustum) |
|
virtual void | setHlmsPassProperties (Hlms *hlms) |
|
Implementation of Clustered Forward Shading.
void Ogre::ForwardPlusBase::setFadeAttenuationRange |
( |
bool |
fade | ) |
|
|
inlineinherited |
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.
- See also
- Light::setAttenuationBasedOnRadius and
-
setAttenuation. And even when controlling the light by its radius, you don't have to worry so much about the threshold's value being accurate. It has a tendency to make lights dimmer though. That's the price to pay for this optimization and having more intuitive controls. Enabled by default.
In math: atten *= max( (attenRange - fDistance) / attenRange, 0.0f );