|
| ParallaxCorrectedCubemapAuto (IdType id, Root *root, SceneManager *sceneManager, const CompositorWorkspaceDef *probeWorkspaceDef) |
|
| ~ParallaxCorrectedCubemapAuto () override |
|
TextureGpu * | _acquireTextureSlot (uint16 &outTexSlot) override |
| Acquires a texture with a given slot.
|
|
void | _copyRenderTargetToCubemap (uint32 cubemapArrayIdx) override |
|
void | _releaseTextureSlot (TextureGpu *texture, uint32 texSlot) override |
|
void | allWorkspacesBeforeBeginUpdate () override |
| Called from CompositorManager2 (not CompositorWorkspace) when we're about to begin updating all the workspaces.
|
|
void | allWorkspacesBeginUpdate () override |
| Called from CompositorManager2 (not CompositorWorkspace) when we're about to update all the workspaces (it's safe to update your own workspaces without calling _beginUpdate and _endUpdate) Warning: Don't add/remove listeners to CompositorManager2 inside this function.
|
|
void | destroyProbe (CubemapProbe *probe) override |
|
TextureGpu * | findIbl (const TextureGpu *baseParams) override |
|
TextureGpu * | findTmpRtt (const TextureGpu *baseParams) override |
| See mTmpRtt.
|
|
bool | frameStarted (const FrameEvent &evt) override |
| Called when a frame is about to begin rendering.
|
|
bool | getEnabled () const |
|
ParallaxCorrectedCubemapAutoListener * | getListener () const |
|
void | passPreExecute (CompositorPass *pass) override |
| Called when each pass is about to be executed.
|
|
void | releaseIbl (const TextureGpu *tmpRtt) override |
|
void | releaseTmpRtt (const TextureGpu *tmpRtt) override |
|
void | setEnabled (bool bEnabled, uint32 width, uint32 height, uint32 maxNumProbes, PixelFormatGpu pixelFormat) |
| Enables/disables this ParallaxCorrectedCubemapAuto system.
|
|
void | setListener (ParallaxCorrectedCubemapAutoListener *listener) |
|
void | setUpdatedTrackedDataFromCamera (Camera *trackedCamera) |
| Will update both mTrackedPosition with appropiate settings every time it's called.
|
|
void | setUseDpm2DArray (bool useDpm2DArray) |
| Whether we should use Dual Paraboloid Mapping with 2D Array instead of Cubemap Arrays.
|
|
void | updateAllDirtyProbes () override |
| By default the probes will be constructed when the user enters the vecinity of non-static probes, and whenever a static probe is dirty.
|
|
| ParallaxCorrectedCubemapBase (IdType id, Root *root, SceneManager *sceneManager, const CompositorWorkspaceDef *probeWorkspaceDef, bool automaticMode) |
|
| ~ParallaxCorrectedCubemapBase () override |
|
virtual void | _addManuallyActiveProbe (CubemapProbe *probe) |
|
virtual void | _notifyPreparePassHash (const Matrix4 &viewMatrix) |
|
virtual void | _releaseManualHardwareResources () |
|
virtual void | _removeManuallyActiveProbe (CubemapProbe *probe) |
|
virtual void | _restoreManualHardwareResources () |
|
void | _setIsRendering (bool bIsRendering) |
|
void | _setProbeRenderInProgress (CubemapProbe *probe) |
|
CubemapProbe * | createProbe () |
| Adds a cubemap probe.
|
|
virtual void | destroyAllProbes () |
|
void | eventOccurred (const String &eventName, const NameValuePairList *parameters) override |
| A rendersystem-specific event occurred.
|
|
virtual void | fillConstBufferData (const Matrix4 &viewMatrix, float *RESTRICT_ALIAS passBufferPtr) const |
|
bool | getAutomaticMode () const |
|
TextureGpu * | getBindTexture () const |
|
const HlmsSamplerblock * | getBindTrilinearSamplerblock () |
|
virtual size_t | getConstBufferSize () |
|
const CompositorWorkspaceDef * | getDefaultWorkspaceDef () const |
|
uint32 | getIblTargetTextureFlags (PixelFormatGpu pixelFormat) const |
|
const CubemapProbeVec & | getProbes () const |
|
SceneManager * | getSceneManager () const |
|
bool | getUseDpm2DArray () const |
|
bool | isRendering () const |
| Inform whether we're currently updating a probe.
|
|
void | passPreExecute (CompositorPass *pass) override |
| Called when each pass is about to be executed.
|
|
virtual void | prepareForClearScene () |
| Destroys the Proxy Items.
|
|
virtual void | restoreFromClearScene () |
|
| IdObject (IdType id) |
| We don't call generateNewId() here, to prevent objects in the stack (i.e.
|
|
IdType | getId () const |
| Get the unique id of this object.
|
|
bool | operator() (const IdObject &left, const IdObject &right) |
|
bool | operator() (const IdObject *left, const IdObject *right) |
|
| Listener () |
|
virtual | ~Listener () |
|
virtual void | passEarlyPreExecute (CompositorPass *pass) |
| Called early on in pass' execution.
|
|
virtual void | passPosExecute (CompositorPass *pass) |
| Called after a pass has been executed.
|
|
virtual void | passSceneAfterFrustumCulling (CompositorPassScene *pass) |
| Called after a pass scene has performed frustum caulling but has yet to prepare and execute rendering commands.
|
|
virtual void | passSceneAfterShadowMaps (CompositorPassScene *pass) |
| Called after a pass scene has rendered shadow casting (it gets called even if there is no shadow node).
|
|
virtual void | workspacePosUpdate (CompositorWorkspace *workspace) |
| Called after all nodes has been updated.
|
|
virtual void | workspacePreUpdate (CompositorWorkspace *workspace) |
| Called before all nodes are going to be updated.
|
|
virtual | ~FrameListener () |
|
virtual bool | frameEnded (const FrameEvent &evt) |
| Called just after a frame has been rendered.
|
|
virtual bool | frameRenderingQueued (const FrameEvent &evt) |
| Called after all render targets have had their rendering commands issued, but before render windows have been asked to flip their buffers over.
|
|
Per-Pixel reflection probes.
Per-Pixel reflection probes are much easier to handle, they're more flexible and powerful. However they require a modern GPU with Cubemap Arrays. Forward Clustered also must be active.
ParallaxCorrectedCubemapAuto supports having more CubemapProbes than the maximum number of probes you pass to ParallaxCorrectedCubemapAuto::setEnabled. However only 'maxNumProbes' probes can be active at the same time. This is all done thanks to _acquireTextureSlot & _releaseTextureSlot.
To activate a probe, call CubemapProbe::initWorkspace. To deactivate it, call CubemapProbe::destroyWorkspace.