Skip to content

Documentation / scene / SSGI

Class: SSGI ​

Defined in: libs/scene/src/posteffect/ssgi.ts:28

Screen-space diffuse global illumination.

Extends ​

Constructors ​

Constructor ​

new SSGI(): SSGI

Defined in: libs/scene/src/posteffect/ssgi.ts:43

Returns ​

SSGI

Overrides ​

AbstractPostEffect.constructor

Properties ​

_enabled ​

protected _enabled: boolean

Defined in: libs/scene/src/posteffect/posteffect.ts:118

Inherited from ​

AbstractPostEffect._enabled


_layer ​

protected _layer: PostEffectLayer

Defined in: libs/scene/src/posteffect/posteffect.ts:119

Inherited from ​

AbstractPostEffect._layer

Accessors ​

disposed ​

Get Signature ​

get disposed(): boolean

Defined in: libs/base/dist/index.d.ts:6107

Returns ​

boolean

Inherited from ​

AbstractPostEffect.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

Inherited from ​

AbstractPostEffect.enabled


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 ​

PostEffectLayer

Inherited from ​

AbstractPostEffect.layer

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 ​

AbstractPostEffect.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 ​

AbstractPostEffect.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 ​

AbstractPostEffect.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 ​

AbstractPostEffect.dispatchEvent


dispose() ​

dispose(): void

Defined in: libs/base/dist/index.d.ts:6108

Returns ​

void

Inherited from ​

AbstractPostEffect.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

Inherited from ​

AbstractPostEffect.needFlip


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 ​

DrawContext

Returns ​

boolean

true if the scene depth buffer is required.

Inherited from ​

AbstractPostEffect.requireDepthAttachment


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 ​

DrawContext

Returns ​

boolean

Inherited from ​

AbstractPostEffect.requireHiZNearest


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 ​

DrawContext

Returns ​

boolean

Inherited from ​

AbstractPostEffect.requireSceneRoughnessTexture


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 ​

DrawContext

Returns ​

boolean

true if the shadow mask is required.

Inherited from ​

AbstractPostEffect.requireShadowMask


apply() ​

apply(ctx, inputColorTexture, sceneDepthTexture, srgbOutput): void

Defined in: libs/scene/src/posteffect/posteffect.ts:224

Apply the post effect

Parameters ​

ctx ​

DrawContext

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.

Inherited from ​

AbstractPostEffect.apply


passThrough() ​

protected passThrough(ctx, inputColorTexture, srgbOutput, renderStates?): void

Defined in: libs/scene/src/posteffect/posteffect.ts:344

Parameters ​

ctx ​

DrawContext

Draw context

inputColorTexture ​

Texture2D

Input color texture

srgbOutput ​

boolean

Whether the result should be gamma corrected

renderStates? ​

RenderStateSet

Returns ​

void

Inherited from ​

AbstractPostEffect.passThrough


drawFullscreenQuad() ​

protected drawFullscreenQuad(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

Inherited from ​

AbstractPostEffect.drawFullscreenQuad


onDispose() ​

protected onDispose(): void

Defined in: libs/scene/src/posteffect/posteffect.ts:376

Returns ​

void

Inherited from ​

AbstractPostEffect.onDispose


requireLinearDepthTexture() ​

requireLinearDepthTexture(ctx): boolean

Defined in: libs/scene/src/posteffect/ssgi.ts:49

Checks whether this post effect requires the linear depth texture

Parameters ​

ctx ​

DrawContext

Returns ​

boolean

true if the linear depth texture is required.

Overrides ​

AbstractPostEffect.requireLinearDepthTexture


requireMotionVectorTexture() ​

requireMotionVectorTexture(ctx): boolean

Defined in: libs/scene/src/posteffect/ssgi.ts:54

Checks whether this post effect requires the motion vector texture

Parameters ​

ctx ​

DrawContext

Returns ​

boolean

true if the motion vector texture is required.

Overrides ​

AbstractPostEffect.requireMotionVectorTexture


requireHiZTexture() ​

requireHiZTexture(ctx): boolean

Defined in: libs/scene/src/posteffect/ssgi.ts:59

Checks whether this post effect requires the Hi-Z depth pyramid.

Parameters ​

ctx ​

DrawContext

Returns ​

boolean

Overrides ​

AbstractPostEffect.requireHiZTexture


requireSceneNormalTexture() ​

requireSceneNormalTexture(ctx): boolean

Defined in: libs/scene/src/posteffect/ssgi.ts:64

Checks whether this post effect requires opaque-scene world normals.

Parameters ​

ctx ​

DrawContext

Returns ​

boolean

Overrides ​

AbstractPostEffect.requireSceneNormalTexture


setup() ​

setup(s): RGHandle

Defined in: libs/scene/src/posteffect/ssgi.ts:69

Build trace, temporal, denoise, upsample, history and pass-through stages.

Parameters ​

s ​

PostEffectSetupContext

Returns ​

RGHandle

Overrides ​

AbstractPostEffect.setup

Released under the MIT License.