![]() |
OGRE
2.2.6
Object-Oriented Graphics Rendering Engine
|
#include <OgreIrradianceField.h>
Inheritance diagram for Ogre::IrradianceField:Public Types | |
| enum | DebugVisualizationMode { DebugVisualizationColour, DebugVisualizationDepth, DebugVisualizationNone } |
Public Member Functions | |
| IrradianceField (Root *root, SceneManager *sceneManager) | |
| ~IrradianceField () | |
| void | createTextures (void) |
| void | destroyTextures (void) |
| void | fillConstBufferData (const Matrix4 &viewMatrix, float *RESTRICT_ALIAS passBufferPtr) const |
| size_t | getConstBufferSize (void) const |
| uint8 | getDebugTessellation (void) const |
| bool | getDebugVisualizationMode (void) const |
| TextureGpu * | getDepthVarianceTex (void) const |
| IdType | getId () const |
| Get the unique id of this object. More... | |
| TextureGpu * | getIrradianceTex (void) const |
| void | initialize (const IrradianceFieldSettings &settings, const Vector3 &fieldOrigin, const Vector3 &fieldSize, VctLighting *vctLighting) |
| initialize More... | |
| bool | operator() (const IdObject &left, const IdObject &right) |
| bool | operator() (const IdObject *left, const IdObject *right) |
| void | reset () |
| If VctLighting was updated with minor changes (e.g. More... | |
| void | setDebugVisualization (IrradianceField::DebugVisualizationMode mode, SceneManager *sceneManager, uint8 tessellation) |
| void | update (uint32 probesPerFrame=200u) |
Friends | |
| class | IrradianceFieldRaster |
Implements an Irradiance Field with Depth, inspired on DDGI
We use the voxelized results from VCT. Afterwards once we have Raytracing, we'll also allow to use Raytracing instead; since both are very similars (with VCT we shoot cones instead of rays)
| Ogre::IrradianceField::IrradianceField | ( | Root * | root, |
| SceneManager * | sceneManager | ||
| ) |
| Ogre::IrradianceField::~IrradianceField | ( | ) |
| void Ogre::IrradianceField::createTextures | ( | void | ) |
| void Ogre::IrradianceField::destroyTextures | ( | void | ) |
| void Ogre::IrradianceField::fillConstBufferData | ( | const Matrix4 & | viewMatrix, |
| float *RESTRICT_ALIAS | passBufferPtr | ||
| ) | const |
| size_t Ogre::IrradianceField::getConstBufferSize | ( | void | ) | const |
| uint8 Ogre::IrradianceField::getDebugTessellation | ( | void | ) | const |
| bool Ogre::IrradianceField::getDebugVisualizationMode | ( | void | ) | const |
|
inline |
|
inlineinherited |
Get the unique id of this object.
|
inline |
| void Ogre::IrradianceField::initialize | ( | const IrradianceFieldSettings & | settings, |
| const Vector3 & | fieldOrigin, | ||
| const Vector3 & | fieldSize, | ||
| VctLighting * | vctLighting | ||
| ) |
initialize
| settings | |
| fieldOrigin | |
| fieldSize | |
| vctLighting | This value is ignored if IrradianceFieldSettings::usesRaster() returns true, and must be non-null if it returns false |
| void Ogre::IrradianceField::reset | ( | ) |
If VctLighting was updated with minor changes (e.g.
light position/direction changed, number of bounces setting changed) then call this function so update() process it again.
If major changes happens to VctLighting, then call initialize() again
| void Ogre::IrradianceField::setDebugVisualization | ( | IrradianceField::DebugVisualizationMode | mode, |
| SceneManager * | sceneManager, | ||
| uint8 | tessellation | ||
| ) |
| mode | |
| sceneManager | Can be nullptr only if mode == IrradianceField::DebugVisualizationNone |
| tessellation | Value in range [3; 16] Note this value increases exponentially: tessellation = 3u -> 24 vertices (per sphere) tessellation = 4u -> 112 vertices tessellation = 5u -> 480 vertices tessellation = 6u -> 1984 vertices tessellation = 7u -> 8064 vertices tessellation = 8u -> 32512 vertices tessellation = 9u -> 130560 vertices tessellation = 16u -> 2.147.418.112 vertices |
| void Ogre::IrradianceField::update | ( | uint32 | probesPerFrame = 200u | ) |
|
friend |