OGRE-Next: Ogre::CompositorPassSceneDef Class Reference

| OGRE-Next 3.0.0 Object-Oriented Graphics Rendering Engine

Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
Ogre::CompositorPassSceneDef Class Reference
Core » Effects

`#include <OgreCompositorPassSceneDef.h>`

Inheritance diagram for Ogre::CompositorPassSceneDef:
[legend]

## Public Member Functions
| CompositorPassSceneDef (CompositorTargetDef *parentTargetDef)
void | setLightVisibilityMask (uint32 visibilityMask)
void | setUseDepthPrePass (const IdStringVec &textureName, IdString depthTextureName, IdString ssrTexture)
void | setUseRefractions (IdString depthTextureName, IdString refractionsTexture)
void | setVisibilityMask (uint32 visibilityMask)
Public Member Functions inherited from Ogre::CompositorPassDef
| CompositorPassDef (CompositorPassType passType, CompositorTargetDef *parentTargetDef)
virtual | ~CompositorPassDef ()
const CompositorTargetDef * | getParentTargetDef () const
uint32 | getRtIndex () const
CompositorPassType | getType () const
void | setAllClearColours (const ColourValue &clearValue)
void | setAllLoadActions (LoadAction::LoadAction loadAction)
void | setAllStoreActions (StoreAction::StoreAction storeAction)

## Public Attributes
bool | mBakeLightingOnly
| When mUvBakingSet is set, tells whether we should bake the whole render result or just the lighting intensity, in order to create a lightmap.
bool | mCameraCubemapReorient
| When true, the camera will be rotated 90°, -90° or 180° depending on the value of mRtIndex and then restored to its original rotation after we're done.
IdString | mCameraName
| When empty, uses the default camera.
IdString | mCullCameraName
| When empty, it implies mCameraName == mCullCameraName.
IdString | mDepthTextureNoMsaa
bool | mEnableForwardPlus
| Enable ForwardPlus during the pass (if Forward3D or ForwardClustered systems were created).
uint8 | mFirstRQ
| First Render Queue ID to render. Inclusive.
bool | mFlushCommandBuffersAfterShadowNode
| Same as CompositorPassDef::mFlushCommandBuffers, but executed after the shadow node Note you may end up flushing twice if the shadow node also has flushing of its own.
bool | mGenNormalsGBuf
| Generate Normals for a GBuffer in RTV output 1, This flag is ignored mPrePassMode if mPrePassMode != PrePassNone.
bool | mInstancedStereo
| When true, will render in instanced stereo mode, thus outputting left & right eyes at the same time.
uint8 | mLastRQ
| Last Render Queue ID to render. Not inclusive.
uint32 | mLightVisibilityMask
| Used by Forward+ to determine which lights should be used (via Light::setVisibilityFlags)
Real | mLodBias
| Multiplier to the Lod value.
IdString | mLodCameraName
| When empty, it implies mCameraName == mLodCameraName; except for shadow nodes.
String | mMaterialScheme
| The material scheme used for this pass.
IdString | mPrePassDepthTexture
PrePassMode | mPrePassMode
| This is a depth pre-pass.
IdString | mPrePassSsrTexture
IdStringVec | mPrePassTexture
| Only used if mPrePassMode == PrePassUse.
IdString | mRefractionsTexture
bool | mReuseCullData
| When true, the frustum culling is skipped in this pass.
IdString | mShadowNode
ShadowNodeRecalculation | mShadowNodeRecalculation
bool | mUpdateLodLists
| When true, which Lod index is current will be updated.
Vector2 | mUvBakingOffset
| When mUvBakingSet is enabled, this defines the UV offset (in pixels).
uint8 | mUvBakingSet
| Used for baking lightmaps and similar stuff.
uint32 | mVisibilityMask
| Viewport's visibility mask while rendering our pass Please don't write to this directly.
Public Attributes inherited from Ogre::CompositorPassDef
ColourValue | mClearColour [OGRE_MAX_MULTIPLE_RENDER_TARGETS]
float | mClearDepth
uint32 | mClearStencil
bool | mColourWrite
| When false will not really bind the RenderTarget for rendering and use a null colour buffer instead.
uint8 | mExecutionMask
IdStringVec | mExposedTextures
bool | mFlushCommandBuffers
| Whether to flush the command buffer at the end of the pass.
uint32 | mIdentifier
| Custom value in case there's a listener attached (to identify the pass)
bool | mIncludeOverlays
| TODO: Refactor OgreOverlay to remove this design atrocity.
LoadAction::LoadAction | mLoadActionColour [OGRE_MAX_MULTIPLE_RENDER_TARGETS]
LoadAction::LoadAction | mLoadActionDepth
LoadAction::LoadAction | mLoadActionStencil
uint32 | mNumInitialPasses
| Number of times to perform the pass before stopping. -1 to never stop.
uint32 | mNumViewports
String | mProfilingId
bool | mReadOnlyDepth
bool | mReadOnlyStencil
bool | mShadowMapFullViewport
| Only used if mShadowMapIdx is valid (if pass is owned by Shadow Nodes).
uint32 | mShadowMapIdx
| Shadow map index it belongs to (only filled in passes owned by Shadow Nodes)
bool | mSkipLoadStoreSemantics
| Ignore mLoadAction*‍/mStoreAction*.
StoreAction::StoreAction | mStoreActionColour [OGRE_MAX_MULTIPLE_RENDER_TARGETS]
StoreAction::StoreAction | mStoreActionDepth
StoreAction::StoreAction | mStoreActionStencil
UavDependencyVec | mUavDependencies
uint8 | mViewportModifierMask
ViewportRect | mVpRect [16]
| Viewport's region to draw.
bool | mWarnIfRtvWasFlushed
| Will issue a warning (by raising an exception) if Ogre is forced to flush the RenderTarget, which is very bad for performance on mobile, and can cause serious performance problems in Desktop if using MSAA, and also cause correctness problems (i.e.

## Additional Inherited Members
Public Types inherited from Ogre::CompositorPassDef
typedef vector< UavDependency >::type | UavDependencyVec

## Constructor & Destructor Documentation

## ◆ CompositorPassSceneDef()

Ogre::CompositorPassSceneDef::CompositorPassSceneDef | ( | CompositorTargetDef * | parentTargetDef | ) |
| inline

References Ogre::CompositorPassDef::CompositorPassDef(), Ogre::RenderSystem::_getDefaultViewportMaterialScheme(), Ogre::Root::getSingleton(), mBakeLightingOnly, mCameraCubemapReorient, mEnableForwardPlus, mFirstRQ, mFlushCommandBuffersAfterShadowNode, mGenNormalsGBuf, Ogre::CompositorPassDef::mIncludeOverlays, mInstancedStereo, mLastRQ, mLightVisibilityMask, mLodBias, mMaterialScheme, mPrePassMode, mReuseCullData, mShadowNodeRecalculation, mUpdateLodLists, mUvBakingOffset, mUvBakingSet, mVisibilityMask, Ogre::PASS_SCENE, Ogre::PrePassNone, and Ogre::SHADOW_NODE_FIRST_ONLY.

## Member Function Documentation

## ◆ setLightVisibilityMask()

void Ogre::CompositorPassSceneDef::setLightVisibilityMask | ( | uint32 | visibilityMask | ) |
| inline

References mLightVisibilityMask, and Ogre::VisibilityFlags::RESERVED_VISIBILITY_FLAGS.

## ◆ setUseDepthPrePass()

void Ogre::CompositorPassSceneDef::setUseDepthPrePass | ( | const IdStringVec & | textureName,
|  | IdString | depthTextureName,
|  | IdString | ssrTexture )
| inline

References mPrePassDepthTexture, mPrePassMode, mPrePassSsrTexture, mPrePassTexture, Ogre::CompositorPassDef::mReadOnlyDepth, Ogre::CompositorPassDef::mReadOnlyStencil, and Ogre::PrePassUse.

## ◆ setUseRefractions()

void Ogre::CompositorPassSceneDef::setUseRefractions | ( | IdString | depthTextureName,
|  | IdString | refractionsTexture )
| inline

References mDepthTextureNoMsaa, Ogre::CompositorPassDef::mReadOnlyDepth, Ogre::CompositorPassDef::mReadOnlyStencil, and mRefractionsTexture.

## ◆ setVisibilityMask()

void Ogre::CompositorPassSceneDef::setVisibilityMask | ( | uint32 | visibilityMask | ) |
| inline

References mVisibilityMask, and Ogre::VisibilityFlags::RESERVED_VISIBILITY_FLAGS.

## Member Data Documentation

## ◆ mBakeLightingOnly

bool Ogre::CompositorPassSceneDef::mBakeLightingOnly

When mUvBakingSet is set, tells whether we should bake the whole render result or just the lighting intensity, in order to create a lightmap.

Typically, when baking with this setting, it's because you're going to use this texture with HlmsPbsDatablock as an emissive map and calling HlmsPbsDatablock::setUseEmissiveAsLightmap with true.

Referenced by CompositorPassSceneDef().

## ◆ mCameraCubemapReorient

bool Ogre::CompositorPassSceneDef::mCameraCubemapReorient

When true, the camera will be rotated 90°, -90° or 180° depending on the value of mRtIndex and then restored to its original rotation after we're done.

Referenced by CompositorPassSceneDef().

## ◆ mCameraName

IdString Ogre::CompositorPassSceneDef::mCameraName

When empty, uses the default camera.

## ◆ mCullCameraName

IdString Ogre::CompositorPassSceneDef::mCullCameraName

When empty, it implies mCameraName == mCullCameraName.

## ◆ mDepthTextureNoMsaa

IdString Ogre::CompositorPassSceneDef::mDepthTextureNoMsaa

Referenced by setUseRefractions().

## ◆ mEnableForwardPlus

bool Ogre::CompositorPassSceneDef::mEnableForwardPlus

Enable ForwardPlus during the pass (if Forward3D or ForwardClustered systems were created).

Disabling optimizes performance when you don't need it.

Referenced by CompositorPassSceneDef().

## ◆ mFirstRQ

uint8 Ogre::CompositorPassSceneDef::mFirstRQ

First Render Queue ID to render. Inclusive.

Referenced by CompositorPassSceneDef().

## ◆ mFlushCommandBuffersAfterShadowNode

bool Ogre::CompositorPassSceneDef::mFlushCommandBuffersAfterShadowNode

Same as CompositorPassDef::mFlushCommandBuffers, but executed after the shadow node Note you may end up flushing twice if the shadow node also has flushing of its own.

Does not do anything if mShadowNodeRecalculation is set to SHADOW_NODE_REUSE (whether explicitly or automatically determined)

Referenced by CompositorPassSceneDef().

## ◆ mGenNormalsGBuf

bool Ogre::CompositorPassSceneDef::mGenNormalsGBuf

Generate Normals for a GBuffer in RTV output 1, This flag is ignored mPrePassMode if mPrePassMode != PrePassNone.

Referenced by CompositorPassSceneDef().

## ◆ mInstancedStereo

bool Ogre::CompositorPassSceneDef::mInstancedStereo

When true, will render in instanced stereo mode, thus outputting left & right eyes at the same time.

Referenced by CompositorPassSceneDef().

## ◆ mLastRQ

uint8 Ogre::CompositorPassSceneDef::mLastRQ

Last Render Queue ID to render. Not inclusive.

Referenced by CompositorPassSceneDef().

## ◆ mLightVisibilityMask

uint32 Ogre::CompositorPassSceneDef::mLightVisibilityMask

Used by Forward+ to determine which lights should be used (via Light::setVisibilityFlags)

Referenced by CompositorPassSceneDef(), and setLightVisibilityMask().

## ◆ mLodBias

Real Ogre::CompositorPassSceneDef::mLodBias

Multiplier to the Lod value.

What it means depends on the technique. You'll probably want to avoid setting it directly and rather use LodStrategy::transformBias

See also
  LodStrategy::transformBias

Referenced by CompositorPassSceneDef().

## ◆ mLodCameraName

IdString Ogre::CompositorPassSceneDef::mLodCameraName

When empty, it implies mCameraName == mLodCameraName; except for shadow nodes.

For shadow nodes, when empty, it will use the receiver's lod camera.

## ◆ mMaterialScheme

String Ogre::CompositorPassSceneDef::mMaterialScheme

The material scheme used for this pass.

If no material scheme is set then it will use the default scheme

Referenced by CompositorPassSceneDef().

## ◆ mPrePassDepthTexture

IdString Ogre::CompositorPassSceneDef::mPrePassDepthTexture

Referenced by setUseDepthPrePass().

## ◆ mPrePassMode

PrePassMode Ogre::CompositorPassSceneDef::mPrePassMode

This is a depth pre-pass.

Note: Implementations may write to colour too for hybrid deferred & forward rendering. If you modify this, you probably want to modify mReadOnlyDepth & mReadOnlyStencil too

Referenced by CompositorPassSceneDef(), and setUseDepthPrePass().

## ◆ mPrePassSsrTexture

IdString Ogre::CompositorPassSceneDef::mPrePassSsrTexture

Referenced by setUseDepthPrePass().

## ◆ mPrePassTexture

IdStringVec Ogre::CompositorPassSceneDef::mPrePassTexture

Only used if mPrePassMode == PrePassUse.

Referenced by setUseDepthPrePass().

## ◆ mRefractionsTexture

IdString Ogre::CompositorPassSceneDef::mRefractionsTexture

Referenced by setUseRefractions().

## ◆ mReuseCullData

bool Ogre::CompositorPassSceneDef::mReuseCullData

When true, the frustum culling is skipped in this pass.

To cull objects, data from the most recent frustum culling execution are used.

Referenced by CompositorPassSceneDef().

## ◆ mShadowNode

IdString Ogre::CompositorPassSceneDef::mShadowNode

## ◆ mShadowNodeRecalculation

ShadowNodeRecalculation Ogre::CompositorPassSceneDef::mShadowNodeRecalculation

Referenced by CompositorPassSceneDef().

## ◆ mUpdateLodLists

bool Ogre::CompositorPassSceneDef::mUpdateLodLists

When true, which Lod index is current will be updated.

Reasons to set this to false:

1. You don't use LOD (i.e. you're GPU bottleneck). Setting to false helps CPU.
2. LODs have been calculated in a previous pass. This happens if previous pass(es) all used the same lod camera and all RenderQueue IDs this pass will use have been rendered already and updated their lod lists.
   Remarks
     Automatically set to false for shadow nodes that leave mLodCameraName empty

Referenced by CompositorPassSceneDef().

## ◆ mUvBakingOffset

Vector2 Ogre::CompositorPassSceneDef::mUvBakingOffset

When mUvBakingSet is enabled, this defines the UV offset (in pixels).

Without conservative rasterization, the baking won't render on pixels that are being partially touched by the triangle.

This causes severe artifacts when the baked result is used (background colour of the texture leaks into the triangle).

Without conservative rasterization, a sound solution is to render multiple times with pixel (or subpixel) offsets in order to add some padding around the borders of each triangle in the lightmap.

MSAA can also be used instead, but certain types of baking (e.g. GBuffer baking) don't work well because the MSAA sample locations are not in the center.

See https://ndotl.wordpress.com/2018/08/29/baking-artifact-free-lightmaps/

Referenced by CompositorPassSceneDef().

## ◆ mUvBakingSet

uint8 Ogre::CompositorPassSceneDef::mUvBakingSet

Used for baking lightmaps and similar stuff.

When set to 0xFF it is disabled. Otherwise, the selected UV set will be used to bake the texture with the render results. If the mesh doesn't have such UV, then the max UV will be used. If the mesh doesn't have UVs, it is up to the Hlms implementation what to do (probably raise an exception)

Referenced by CompositorPassSceneDef().

## ◆ mVisibilityMask

uint32 Ogre::CompositorPassSceneDef::mVisibilityMask

Viewport's visibility mask while rendering our pass Please don't write to this directly.

Use setVisibilityMask()

Referenced by CompositorPassSceneDef(), and setVisibilityMask().

The documentation for this class was generated from the following file:

- OgreCompositorPassSceneDef.h