Implements an Irradiance Field with Depth, inspired on DDGI.
More...
#include <OgreIrradianceField.h>
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)
- See also
- Snippet taken from Dynamic Diffuse Global Illumination with Ray-Traced Irradiance Fields Zander Majercik, NVIDIA; Jean-Philippe Guertin, Université de Montréal; Derek Nowrouzezahrai, McGill University; Morgan McGuire, NVIDIA and McGill University http://jcgt.org/published/0008/02/01/
-
https://github.com/OGRECave/ogre-next/issues/29
◆ DebugVisualizationMode
Enumerator |
---|
DebugVisualizationColour | |
DebugVisualizationDepth | |
DebugVisualizationNone | |
◆ IrradianceField()
Ogre::IrradianceField::IrradianceField |
( |
Root * |
root, |
|
|
SceneManager * |
sceneManager |
|
) |
| |
◆ ~IrradianceField()
Ogre::IrradianceField::~IrradianceField |
( |
| ) |
|
◆ createTextures()
void Ogre::IrradianceField::createTextures |
( |
| ) |
|
◆ destroyTextures()
void Ogre::IrradianceField::destroyTextures |
( |
| ) |
|
◆ fillConstBufferData()
void Ogre::IrradianceField::fillConstBufferData |
( |
const Matrix4 & |
viewMatrix, |
|
|
float *RESTRICT_ALIAS |
passBufferPtr |
|
) |
| const |
◆ getConstBufferSize()
size_t Ogre::IrradianceField::getConstBufferSize |
( |
| ) |
const |
◆ getDebugTessellation()
uint8 Ogre::IrradianceField::getDebugTessellation |
( |
| ) |
const |
◆ getDebugVisualizationMode()
bool Ogre::IrradianceField::getDebugVisualizationMode |
( |
| ) |
const |
◆ getDepthVarianceTex()
TextureGpu* Ogre::IrradianceField::getDepthVarianceTex |
( |
| ) |
const |
|
inline |
◆ getId()
IdType Ogre::IdObject::getId |
( |
| ) |
const |
|
inlineinherited |
Get the unique id of this object.
◆ getIrradianceTex()
TextureGpu* Ogre::IrradianceField::getIrradianceTex |
( |
| ) |
const |
|
inline |
◆ initialize()
initialize
- Parameters
-
settings | |
fieldOrigin | |
fieldSize | |
vctLighting | This value is ignored if IrradianceFieldSettings::usesRaster() returns true, and must be non-null if it returns false |
◆ operator()() [1/2]
bool Ogre::IdObject::operator() |
( |
const IdObject & |
left, |
|
|
const IdObject & |
right |
|
) |
| |
|
inlineinherited |
◆ operator()() [2/2]
bool Ogre::IdObject::operator() |
( |
const IdObject * |
left, |
|
|
const IdObject * |
right |
|
) |
| |
|
inlineinherited |
◆ reset()
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
◆ setDebugVisualization()
- Parameters
-
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 |
◆ update()
void Ogre::IrradianceField::update |
( |
uint32 |
probesPerFrame = 200u | ) |
|
◆ IrradianceFieldRaster
The documentation for this class was generated from the following file: