![]() |
OGRE 2.3.3
Object-Oriented Graphics Rendering Engine
|
Implements an Irradiance Field with Depth, inspired on DDGI. More...
#include <OgreIrradianceField.h>
Public Types | |
enum | DebugVisualizationMode { DebugVisualizationColour , DebugVisualizationDepth , DebugVisualizationNone } |
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::fillConstBufferData | ( | const Matrix4 & | viewMatrix, |
float *RESTRICT_ALIAS | passBufferPtr | ||
) | 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 |
|
friend |