Documentation / scene / AbstractPostEffect
Class: AbstractPostEffect
Defined in: libs/scene/src/posteffect/posteffect.ts:116
Base class for any type of post effect
Extends
Disposable
Extended by
Constructors
Constructor
new AbstractPostEffect():
AbstractPostEffect
Defined in: libs/scene/src/posteffect/posteffect.ts:124
Creates an instance of a post effect
Returns
AbstractPostEffect
Overrides
Disposable.constructor
Properties
_enabled
protected_enabled:boolean
Defined in: libs/scene/src/posteffect/posteffect.ts:118
_layer
protected_layer:PostEffectLayer
Defined in: libs/scene/src/posteffect/posteffect.ts:119
Accessors
disposed
Get Signature
get disposed():
boolean
Defined in: libs/base/dist/index.d.ts:6107
Returns
boolean
Inherited from
Disposable.disposed
enabled
Get Signature
get enabled():
boolean
Defined in: libs/scene/src/posteffect/posteffect.ts:130
Whether this post effect is enabled
Returns
boolean
Set Signature
set enabled(
val):void
Defined in: libs/scene/src/posteffect/posteffect.ts:133
Parameters
val
boolean
Returns
void
layer
Get Signature
get layer():
PostEffectLayer
Defined in: libs/scene/src/posteffect/posteffect.ts:137
Whether this post effect will be rendered at opaque phase
Returns
Methods
on()
on<
K>(type,listener,context?):void
Defined in: libs/base/dist/index.d.ts:630
IEventTarget.on
Type Parameters
K
K extends "dispose"
Parameters
type
K
listener
EventListener<{ dispose: []; }, K>
context?
unknown
Returns
void
Inherited from
Disposable.on
once()
once<
K>(type,listener,context?):void
Defined in: libs/base/dist/index.d.ts:634
IEventTarget.once
Type Parameters
K
K extends "dispose"
Parameters
type
K
listener
EventListener<{ dispose: []; }, K>
context?
unknown
Returns
void
Inherited from
Disposable.once
off()
off<
K>(type,listener?,context?):void
Defined in: libs/base/dist/index.d.ts:638
IEventTarget.off
Type Parameters
K
K extends "dispose"
Parameters
type
K
listener?
EventListener<{ dispose: []; }>
context?
unknown
Returns
void
Inherited from
Disposable.off
dispatchEvent()
dispatchEvent<
K>(type, ...args):void
Defined in: libs/base/dist/index.d.ts:642
IEventTarget.dispatchEvent
Type Parameters
K
K extends "dispose"
Parameters
type
K
args
...object[K]
Returns
void
Inherited from
Disposable.dispatchEvent
dispose()
dispose():
void
Defined in: libs/base/dist/index.d.ts:6108
Returns
void
Inherited from
Disposable.dispose
needFlip()
needFlip(
device):boolean
Defined in: libs/scene/src/posteffect/posteffect.ts:145
Check if the post effect should be rendered upside down.
Parameters
device
AbstractDevice
The device object
Returns
boolean
true if the post effect should be rendered upside down
requireLinearDepthTexture()
requireLinearDepthTexture(
_ctx):boolean
Defined in: libs/scene/src/posteffect/posteffect.ts:152
Checks whether this post effect requires the linear depth texture
Parameters
_ctx
Returns
boolean
true if the linear depth texture is required.
requireDepthAttachment()
requireDepthAttachment(
_ctx):boolean
Defined in: libs/scene/src/posteffect/posteffect.ts:159
Checks whether this post effect requires the scene depth buffer
Parameters
_ctx
Returns
boolean
true if the scene depth buffer is required.
requireMotionVectorTexture()
requireMotionVectorTexture(
_ctx):boolean
Defined in: libs/scene/src/posteffect/posteffect.ts:166
Checks whether this post effect requires the motion vector texture
Parameters
_ctx
Returns
boolean
true if the motion vector texture is required.
requireHiZTexture()
requireHiZTexture(
_ctx):boolean
Defined in: libs/scene/src/posteffect/posteffect.ts:170
Checks whether this post effect requires the Hi-Z depth pyramid.
Parameters
_ctx
Returns
boolean
requireHiZNearest()
requireHiZNearest(
_ctx):boolean
Defined in: libs/scene/src/posteffect/posteffect.ts:181
Checks whether this post effect requires the Hi-Z pyramid's nearest-depth channel, which answers "how close is the nearest surface in this screen region" rather than the farthest-depth channel's occlusion question.
Implies AbstractPostEffect.requireHiZTexture; an effect that needs the nearest channel does not have to request the pyramid separately.
Parameters
_ctx
Returns
boolean
requireSceneNormalTexture()
requireSceneNormalTexture(
_ctx):boolean
Defined in: libs/scene/src/posteffect/posteffect.ts:185
Checks whether this post effect requires opaque-scene world normals.
Parameters
_ctx
Returns
boolean
requireSceneRoughnessTexture()
requireSceneRoughnessTexture(
_ctx):boolean
Defined in: libs/scene/src/posteffect/posteffect.ts:189
Checks whether this post effect requires opaque-scene roughness data.
Parameters
_ctx
Returns
boolean
requireShadowMask()
requireShadowMask(
_ctx):boolean
Defined in: libs/scene/src/posteffect/posteffect.ts:200
Checks whether this post effect requires the screen-space shadow mask.
When true and the mask was produced this frame, the effect can sample DrawContext.shadowMaskTexture in its apply() body; the graph keeps the mask alive for the effect's pass.
Parameters
_ctx
Returns
boolean
true if the shadow mask is required.
apply()
apply(
ctx,inputColorTexture,sceneDepthTexture,srgbOutput):void
Defined in: libs/scene/src/posteffect/posteffect.ts:224
Apply the post effect
Parameters
ctx
inputColorTexture
Texture2D
The previous scene color texture
sceneDepthTexture
Texture2D
The linear scene depth texture
srgbOutput
boolean
Whether the result should be gamma corrected
Returns
void
Remarks
The frame buffer of the post effect is already set when apply() is called.
setup()
setup(
s):RGHandle
Defined in: libs/scene/src/posteffect/posteffect.ts:239
Declare this effect's passes on the render graph.
The default implementation wraps AbstractPostEffect.apply into a single graph pass, so effects only overriding apply() work unchanged. Multi-pass effects override this method to declare each internal step as its own pass, calling PostEffectSetupContext.createOutput inside the final pass.
Parameters
s
Build-time setup context.
Returns
The effect's output color handle.
passThrough()
protectedpassThrough(ctx,inputColorTexture,srgbOutput,renderStates?):void
Defined in: libs/scene/src/posteffect/posteffect.ts:344
Parameters
ctx
Draw context
inputColorTexture
Texture2D
Input color texture
srgbOutput
boolean
Whether the result should be gamma corrected
renderStates?
RenderStateSet
Returns
void
drawFullscreenQuad()
protecteddrawFullscreenQuad(renderStateSet?):void
Defined in: libs/scene/src/posteffect/posteffect.ts:363
Draws a fullscreen quad
Parameters
renderStateSet?
RenderStateSet
Render states that will be used when drawing the fullscreen quad.
Returns
void
onDispose()
protectedonDispose():void
Defined in: libs/scene/src/posteffect/posteffect.ts:376
Returns
void
Overrides
Disposable.onDispose