#include <OgreCubemapProbe.h>
|
| CubemapProbe (ParallaxCorrectedCubemapBase *creator) |
|
| ~CubemapProbe () |
|
void | _addReference () |
|
void | _clearCubemap () |
|
void | _prepareForRendering () |
|
void | _releaseManualHardwareResources () |
|
void | _removeReference () |
|
void | _restoreManualHardwareResources () |
|
void | _updateRender () |
|
void | destroyWorkspace () |
|
const Aabb & | getArea () const |
|
const Vector3 & | getAreaInnerRegion () const |
|
Aabb | getAreaLS () const |
|
ConstBufferPacked * | getConstBufferForManualProbes () |
|
ParallaxCorrectedCubemapBase * | getCreator () |
|
const SceneNode * | getInternalCubemapProbeSceneNode () const |
|
uint16 | getInternalSliceToArrayTexture () const |
|
TextureGpu * | getInternalTexture () const |
|
const Matrix3 & | getInvOrientation () const |
|
Real | getNDF (const Vector3 &posLS) const |
| Gets the Normalized Distance Function. More...
|
|
const Matrix3 & | getOrientation () const |
|
uint16_t | getPriority () const |
|
const Vector3 & | getProbeCameraPos () const |
|
const Aabb & | getProbeShape () const |
|
bool | getStatic () const |
|
CompositorWorkspace * | getWorkspace () const |
|
void | initWorkspace (float cameraNear=0.5f, float cameraFar=500.0f, IdString workspaceDefOverride=IdString(), const CompositorChannelVec &additionalChannels=CompositorChannelVec(), uint8 executionMask=0xFF) |
| Initializes the workspace so we can actually render to the cubemap. More...
|
|
bool | isInitialized () const |
|
void | set (const Vector3 &cameraPos, const Aabb &area, const Vector3 &areaInnerRegion, const Matrix3 &orientation, const Aabb &probeShape) |
| Sets cubemap probe's parameters. More...
|
|
void | setPriority (uint16 priority) |
| When two probes overlap, you may want one probe to have particularly more influence than the others. More...
|
|
void | setStatic (bool isStatic) |
| Set to False if it should be updated every frame. More...
|
|
void | setTextureParams (uint32 width, uint32 height, bool useManual=false, PixelFormatGpu pf=PFG_RGBA8_UNORM_SRGB, bool isStatic=true, SampleDescription sampleDesc=SampleDescription()) |
|
◆ CubemapProbe()
◆ ~CubemapProbe()
Ogre::CubemapProbe::~CubemapProbe |
( |
| ) |
|
◆ _addReference()
void Ogre::CubemapProbe::_addReference |
( |
| ) |
|
◆ _clearCubemap()
void Ogre::CubemapProbe::_clearCubemap |
( |
| ) |
|
◆ _prepareForRendering()
void Ogre::CubemapProbe::_prepareForRendering |
( |
| ) |
|
◆ _releaseManualHardwareResources()
void Ogre::CubemapProbe::_releaseManualHardwareResources |
( |
| ) |
|
◆ _removeReference()
void Ogre::CubemapProbe::_removeReference |
( |
| ) |
|
◆ _restoreManualHardwareResources()
void Ogre::CubemapProbe::_restoreManualHardwareResources |
( |
| ) |
|
◆ _updateRender()
void Ogre::CubemapProbe::_updateRender |
( |
| ) |
|
◆ destroyWorkspace()
void Ogre::CubemapProbe::destroyWorkspace |
( |
| ) |
|
◆ getArea()
const Aabb& Ogre::CubemapProbe::getArea |
( |
| ) |
const |
|
inline |
◆ getAreaInnerRegion()
const Vector3& Ogre::CubemapProbe::getAreaInnerRegion |
( |
| ) |
const |
|
inline |
◆ getAreaLS()
Aabb Ogre::CubemapProbe::getAreaLS |
( |
| ) |
const |
|
inline |
◆ getConstBufferForManualProbes()
◆ getCreator()
◆ getInternalCubemapProbeSceneNode()
const SceneNode* Ogre::CubemapProbe::getInternalCubemapProbeSceneNode |
( |
| ) |
const |
◆ getInternalSliceToArrayTexture()
uint16 Ogre::CubemapProbe::getInternalSliceToArrayTexture |
( |
| ) |
const |
|
inline |
◆ getInternalTexture()
TextureGpu* Ogre::CubemapProbe::getInternalTexture |
( |
| ) |
const |
|
inline |
◆ getInvOrientation()
const Matrix3& Ogre::CubemapProbe::getInvOrientation |
( |
| ) |
const |
|
inline |
◆ getNDF()
Real Ogre::CubemapProbe::getNDF |
( |
const Vector3 & |
posLS | ) |
const |
Gets the Normalized Distance Function.
- Parameters
-
posLS | Position, in local space (relative to this probe) |
- Returns
- Interpretation: <=0 means we're inside the inner range, or in its border. Range (0; 1) we're between inner and outer range. >=1 means we're outside the object.
◆ getOrientation()
const Matrix3& Ogre::CubemapProbe::getOrientation |
( |
| ) |
const |
|
inline |
◆ getPriority()
uint16_t Ogre::CubemapProbe::getPriority |
( |
| ) |
const |
◆ getProbeCameraPos()
const Vector3& Ogre::CubemapProbe::getProbeCameraPos |
( |
| ) |
const |
|
inline |
◆ getProbeShape()
const Aabb& Ogre::CubemapProbe::getProbeShape |
( |
| ) |
const |
|
inline |
◆ getStatic()
bool Ogre::CubemapProbe::getStatic |
( |
| ) |
const |
|
inline |
◆ getWorkspace()
◆ initWorkspace()
Initializes the workspace so we can actually render to the cubemap.
You must call setTextureParams first.
- Parameters
-
◆ isInitialized()
bool Ogre::CubemapProbe::isInitialized |
( |
| ) |
const |
◆ set()
void Ogre::CubemapProbe::set |
( |
const Vector3 & |
cameraPos, |
|
|
const Aabb & |
area, |
|
|
const Vector3 & |
areaInnerRegion, |
|
|
const Matrix3 & |
orientation, |
|
|
const Aabb & |
probeShape |
|
) |
| |
Sets cubemap probe's parameters.
- Parameters
-
cameraPos | Specify where the camera will be positioned. |
area | When the camera enters this area, the probe is collected for blending. |
areaInnerRegion | A value in range [0; 1]. It indicates a % of the OBB's size that will have smooth interpolation with other probes. When region = 1.0; stepping outside the OBB's results in a lighting "pop". The smaller the value, the smoother the transition, but at the cost of quality & precision while inside the OBB (as results get mixed up with other probes'). The value is per axis. |
orientation | The orientation of the AABB that makes it an OBB. This orientation is applied to both probeShape AND area. Skewing and shearing is not tested. May or may not work. |
probeShape | Note AABB is actually an OBB (Oriented Bounding Box). See orientation parameter. The OBB should closely match the shape of the environment around it. The better it fits, the more accurate the reflections. |
◆ setPriority()
void Ogre::CubemapProbe::setPriority |
( |
uint16 |
priority | ) |
|
When two probes overlap, you may want one probe to have particularly more influence than the others.
Use this value to decrease/increase the weight when blending the probes.
- Parameters
-
priority | A value in range [1; 65535] A higher value means the probe should have a stronger influence over the others. |
◆ setStatic()
void Ogre::CubemapProbe::setStatic |
( |
bool |
isStatic | ) |
|
Set to False if it should be updated every frame.
True if only updated when dirty
◆ setTextureParams()
- Parameters
-
width | |
height | |
pf | |
isStatic | Set to False if it should be updated every frame. True if only updated when dirty |
sampleDesc | |
useManual | Set to true if you plan on using thie probe for manually rendering, so we keep mipmaps at the probe level. User is responsible for supplying a workspace definition that will generate mipmaps though! |
◆ mDirty
bool Ogre::CubemapProbe::mDirty |
True if we must re-render to update the texture's contents. False when we don't.
◆ mEnabled
bool Ogre::CubemapProbe::mEnabled |
While disabled, this probe won't be updated (even if dirty) and won't be considered for blending (i.e.
won't be used at all).
◆ mMask
uint32 Ogre::CubemapProbe::mMask |
Mask to group probes.
This probe will only be updated (even if dirty) and blended if mMask & system->mMask is non-zero. Useful for example for probes to be used during the day while other probes to be used during the night; thus you only want one group to be active at the same time. Or if you have per room probes, but during a panoramic shot where many rooms are in sight, and you want a more "global" probe. Defaults to 0xffffffff
◆ mNumIterations
uint16 Ogre::CubemapProbe::mNumIterations |
Number of iterations.
The more iterations, the more light bounces and light reflections we can capture (i.e. mirror of mirrors), but it will take longer to rebuild the probe. Default value is 32. For non-static probes, you should set this value to 1 for performance.
The documentation for this class was generated from the following file: