OGRE: Ogre::Forward3D Class Reference

| OGRE 2.2.4 Object-Oriented Graphics Rendering Engine

Classes | Public Types | Public Member Functions | Static Public Attributes | List of all members
Ogre::Forward3D Class Reference
Core » Resources

Forward3D. More...

`#include <OgreForward3D.h>`

Inheritance diagram for Ogre::Forward3D:
[legend]

## Public Types
typedef vector< CachedGridBuffer >::type | CachedGridBufferVec
enum | ForwardPlusMethods { MethodForward3D, MethodForwardClustered, NumForwardPlusMethods }

## Public Member Functions
| 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, TextureGpu *renderTarget, IdString shaderSyntax, bool instancedStereo, float *RESTRICT_ALIAS passBufferPtr) const
| Fills 'passBufferPtr' with the necessary data for Forward3D rendering. More...
virtual size_t | getConstBufferSize (void) const
| Returns the amount of bytes that fillConstBufferData is going to fill. More...
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 (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, 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

## Detailed Description

Forward3D.

## Member Typedef Documentation

## ◆ CachedGridBufferVec

typedef vector<CachedGridBuffer>::type Ogre::ForwardPlusBase::CachedGridBufferVec
| inherited

## Member Enumeration Documentation

## ◆ ForwardPlusMethods

enum Ogre::ForwardPlusBase::ForwardPlusMethods
| inherited

Enumerator
MethodForward3D |
MethodForwardClustered |
NumForwardPlusMethods |

## Constructor & Destructor Documentation

## ◆ Forward3D()

Ogre::Forward3D::Forward3D | ( | uint32 | width,
|  | uint32 | height,
|  | uint32 | numSlices,
|  | uint32 | lightsPerCell,
|  | float | minDistance,
|  | float | maxDistance,
|  | SceneManager * | sceneManager
| ) |  |

## ◆ ~Forward3D()

virtual Ogre::Forward3D::~Forward3D | ( |  | ) |
| virtual

## Member Function Documentation

## ◆ _changeRenderSystem()

void Ogre::ForwardPlusBase::_changeRenderSystem | ( | RenderSystem * | newRs | ) |
| inherited

## ◆ collectLights()

virtual void Ogre::Forward3D::collectLights | ( | Camera * | camera | ) |
| virtual

Implements Ogre::ForwardPlusBase.

## ◆ fillConstBufferData()

virtual void Ogre::Forward3D::fillConstBufferData | ( | Viewport * | viewport,
|  | TextureGpu * | renderTarget,
|  | IdString | shaderSyntax,
|  | bool | instancedStereo,
|  | float *RESTRICT_ALIAS | passBufferPtr
| ) |  | const
| virtual

Fills 'passBufferPtr' with the necessary data for Forward3D rendering.

See also
  getConstBufferSize

Remarks
  Assumes 'passBufferPtr' is aligned to a vec4/float4 boundary.

Implements Ogre::ForwardPlusBase.

## ◆ getConstBufferSize()

virtual size_t Ogre::Forward3D::getConstBufferSize | ( | void |  | ) | const
| virtual

Returns the amount of bytes that fillConstBufferData is going to fill.

Implements Ogre::ForwardPlusBase.

## ◆ getDebugMode()

bool Ogre::ForwardPlusBase::getDebugMode | ( | void |  | ) | const
| inlineinherited

## ◆ getDecalsEnabled()

bool Ogre::ForwardPlusBase::getDecalsEnabled | ( | void |  | ) | const
| inlineinherited

## ◆ getEnableVpls()

bool Ogre::ForwardPlusBase::getEnableVpls | ( | void |  | ) | const
| inlineinherited

## ◆ getFadeAttenuationRange()

bool Ogre::ForwardPlusBase::getFadeAttenuationRange | ( | void |  | ) | const
| inlineinherited

## ◆ getFineLightMaskGranularity()

bool Ogre::ForwardPlusBase::getFineLightMaskGranularity | ( | void |  | ) | const
| inlineinherited

## ◆ getForwardPlusMethod()

virtual ForwardPlusMethods Ogre::Forward3D::getForwardPlusMethod | ( | void |  | ) | const
| inlinevirtual

Implements Ogre::ForwardPlusBase.

## ◆ getGlobalLightListBuffer()

TexBufferPacked* Ogre::ForwardPlusBase::getGlobalLightListBuffer | ( | const Camera * | camera | ) | const
| inherited

Cache the return value as internally we perform an O(N) search.

## ◆ getGridBuffer()

TexBufferPacked* Ogre::ForwardPlusBase::getGridBuffer | ( | const Camera * | camera | ) | const
| inherited

Cache the return value as internally we perform an O(N) search.

## ◆ getHeight()

uint32 Ogre::Forward3D::getHeight | ( | void |  | ) | const
| inline

## ◆ getLightsPerCell()

uint32 Ogre::Forward3D::getLightsPerCell | ( | void |  | ) | const
| inline

## ◆ getMaxDistance()

float Ogre::Forward3D::getMaxDistance | ( | void |  | ) | const
| inline

## ◆ getMinDistance()

float Ogre::Forward3D::getMinDistance | ( | void |  | ) | const
| inline

## ◆ getNumSlices()

uint32 Ogre::Forward3D::getNumSlices | ( | void |  | ) | const
| inline

## ◆ getWidth()

uint32 Ogre::Forward3D::getWidth | ( | void |  | ) | const
| inline

## ◆ isCacheDirty()

bool Ogre::ForwardPlusBase::isCacheDirty | ( | const Camera * | camera | ) | const
| inherited

## ◆ 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

## ◆ setDebugMode()

void Ogre::ForwardPlusBase::setDebugMode | ( | bool | debugMode | ) |
| inlineinherited

Turns on visualization of light cell occupancy.

## ◆ setEnableVpls()

void Ogre::ForwardPlusBase::setEnableVpls | ( | bool | enable | ) |
| inlineinherited

## ◆ setFadeAttenuationRange()

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 );

## ◆ setFineLightMaskGranularity()

void Ogre::ForwardPlusBase::setFineLightMaskGranularity | ( | bool | useFineGranularity | ) |
| inlineinherited

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).

## ◆ setHlmsPassProperties()

virtual void Ogre::Forward3D::setHlmsPassProperties | ( | Hlms * | hlms | ) |
| virtual

Reimplemented from Ogre::ForwardPlusBase.

## Member Data Documentation

## ◆ MaxCubemapProbeRq

const size_t Ogre::ForwardPlusBase::MaxCubemapProbeRq
| staticinherited

## ◆ MaxDecalRq

const size_t Ogre::ForwardPlusBase::MaxDecalRq
| staticinherited

## ◆ MinCubemapProbeRq

const size_t Ogre::ForwardPlusBase::MinCubemapProbeRq
| staticinherited

## ◆ MinDecalRq

const size_t Ogre::ForwardPlusBase::MinDecalRq
| staticinherited

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

- OgreForward3D.h