|  | 
|  | Forward3D (uint32 width, uint32 height, uint32 numSlices, uint32 lightsPerCell, float minDistance, float maxDistance, SceneManager *sceneManager) | 
|  | 
| virtual | ~Forward3D () | 
|  | 
| void | _changeRenderSystem (RenderSystem *newRs) | 
|  | 
| virtual void | collectLights (Camera *camera) | 
|  | 
| virtual void | fillConstBufferData (Viewport *viewport, RenderTarget *renderTarget, IdString shaderSyntax, float *RESTRICT_ALIAS passBufferPtr) const | 
|  | Fills 'passBufferPtr' with the necessary data for Forward3D rendering. 
 | 
|  | 
| virtual size_t | getConstBufferSize (void) const | 
|  | 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 | 
|  | 
| 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. 
 | 
|  | 
| 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, 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) | 
|  | 
  
  | 
        
          | 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 );