OGRE-Next
3.0.0
Object-Oriented Graphics Rendering Engine
|
CompositorPassShadows This class enables force-updating multiple shadow nodes in batch in its own pass. More...
#include <OgreCompositorPassShadows.h>
Public Member Functions | |
CompositorPassShadows (const CompositorPassShadowsDef *definition, Camera *defaultCamera, CompositorNode *parentNode, const RenderTargetViewDef *rtv) | |
~CompositorPassShadows () override | |
void | execute (const Camera *lodCamera) override |
Camera * | getCullCamera () const |
const FastArray< CompositorShadowNode * > & | getShadowNodes () const |
Public Member Functions inherited from Ogre::CompositorPass | |
CompositorPass (const CompositorPassDef *definition, CompositorNode *parentNode) | |
virtual | ~CompositorPass () |
ResourceTransitionArray & | _getResourceTransitionsNonConst () |
virtual void | analyzeBarriers (const bool bClearBarriers=true) |
Bakes all of the memory barriers / resource transition that will be needed before executing a GPU command like rendering, copying/blit or compute. More... | |
Vector2 | getActualDimensions () const |
const CompositorPassDef * | getDefinition () const |
const CompositorNode * | getParentNode () const |
RenderPassDescriptor * | getRenderPassDesc () const |
const ResourceTransitionArray & | getResourceTransitions () const |
const CompositorTextureVec & | getTextureDependencies () const |
CompositorPassType | getType () const |
Real | getViewportAspectRatio (size_t vpIdx) |
virtual void | notifyCleared () |
virtual void | notifyDestroyed (const UavBufferPacked *buffer) |
virtual void | notifyDestroyed (TextureGpu *channel) |
virtual bool | notifyRecreated (const TextureGpu *channel) |
virtual void | notifyRecreated (const UavBufferPacked *oldBuffer, UavBufferPacked *newBuffer) |
void | profilingBegin () |
void | profilingEnd () |
virtual void | resetNumPassesLeft () |
CompositorPassShadows This class enables force-updating multiple shadow nodes in batch in its own pass.
This is useful because shadow nodes may "break" a render pass in 3:
- Normal rendering to RT - Shadow node update - Continue Normal rendering to the same RT
This is an unnecessary performance hit on mobile (TBDR) thus executing them earlier allows for a smooth:
- Shadow node update (all of them? Up to you) - Normal rendering to RT
Don't forget to set shadow nodes to reuse in the pass scene passes or else you may overwrite them unnecessarily
Ogre::CompositorPassShadows::CompositorPassShadows | ( | const CompositorPassShadowsDef * | definition, |
Camera * | defaultCamera, | ||
CompositorNode * | parentNode, | ||
const RenderTargetViewDef * | rtv | ||
) |
|
override |
|
overridevirtual |
Implements Ogre::CompositorPass.
|
inline |
|
inline |