Skip to content

@orillusion/core


Class: ReflectionPass ​

Defined in: src/gfx/renderJob/graph/passes/ReflectionPass.ts:44

Reflection probe renderer. Renders cube-camera views of the scene into a horizontal-strip atlas, then runs a compute pre-filter that generates the mip chain consumed by lit materials. Both the cube render and the pre-filter compute stay internal to this pass — splitting them would require sharing intermediate textures across graph nodes for no scheduling benefit.

Extends ​

Constructors ​

Constructor ​

new ReflectionPass(): ReflectionPass

Returns ​

ReflectionPass

Inherited from ​

RenderGraphPass.constructor

Properties ​

materialPasses ​

readonly materialPasses: readonly PassType[] = []

Defined in: src/gfx/renderJob/graph/RenderGraphPass.ts:324

Material-side pass types consumed. Optional; defaults to none for pure compute / copy passes.

Inherited from ​

RenderGraphPass.materialPasses


enabled ​

enabled: boolean = true

Defined in: src/gfx/renderJob/graph/RenderGraphPass.ts:332

Runtime kill switch. graph.disablePass(name) flips this. A disabled pass is treated as if it weren't in the graph: it's filtered out before validation + topo sort, and skipped during execute. Disabling a producer whose output is read by another enabled pass makes the next compile() throw UnresolvedResourceError.

Inherited from ​

RenderGraphPass.enabled


layerMask ​

layerMask: number = VisibleLayer.All

Defined in: src/gfx/renderJob/graph/RenderGraphPass.ts:347

Which scene layers this pass consumes, as a bitmask. Default VisibleLayer.All reproduces the legacy "draw every collected node" behaviour. Custom passes (or custom RendererJobs wiring built-in passes) override this to restrict the pass to specific composition layers — combined with the active camera's cullingMask at execute time via bitwise AND, then matched against each node's visibleLayer:

 (node.visibleLayer & pass.layerMask & camera.cullingMask) !== 0

Use collectLayered from inside execute() to fetch the filtered opaque/transparent lists; it threads layerMask and the camera mask through EntityCollect.getLayerLists.

Inherited from ​

RenderGraphPass.layerMask


reads ​

readonly reads: readonly string[]

Defined in: src/gfx/renderJob/graph/RenderGraphPass.ts:353

Names this pass reads. Populated on the first RenderGraph.compile() that processes this pass, from the b.read(...) calls inside its setup(). Empty frozen array before compile.

Inherited from ​

RenderGraphPass.reads


writes ​

readonly writes: readonly string[]

Defined in: src/gfx/renderJob/graph/RenderGraphPass.ts:358

Names this pass writes (creator + mutator combined). Populated on the first RenderGraph.compile() from the b.write(...) calls inside setup(). Empty frozen array before compile.

Inherited from ​

RenderGraphPass.writes


creates ​

readonly creates: readonly string[]

Defined in: src/gfx/renderJob/graph/RenderGraphPass.ts:363

Subset of writes for which this pass was the creator (called b.write(name, factory), not b.write(name)). The validator's single-creator rule operates on this set.

Inherited from ​

RenderGraphPass.creates


dependencies? ​

optional dependencies?: ReadonlySet<string>

Defined in: src/gfx/renderJob/graph/RenderGraphPass.ts:377

Explicit ordering dependencies on other pass names, set either from setup() via b.dependsOn(name) or by direct assignment before the next compile. Each entry adds a topo-sort edge <name> → this, independent of any resource edge. Use for side-effect dependencies the graph can't see (indirect buffers, off-screen RTs consumed via materials, etc.).

Beyond the edge, an entry here also positions this pass in the compiled schedule: the effective scheduling key collapses to "just after the latest dep", so a late-added pass with explicit dependencies runs next to its dep instead of trailing at the end of the queue. See topoSort for the full rule.

Inherited from ​

RenderGraphPass.dependencies


name ​

readonly name: "ReflectionPass" = 'ReflectionPass'

Defined in: src/gfx/renderJob/graph/passes/ReflectionPass.ts:45

Unique pass identifier. Used as the graph-node key and in error messages — prefer PascalCase ending in Pass (e.g. ShadowPass, ColorPass).

Overrides ​

RenderGraphPass.name


outTexture ​

outTexture: VirtualTexture

Defined in: src/gfx/renderJob/graph/passes/ReflectionPass.ts:47


gBuffer ​

gBuffer: GBufferFrame

Defined in: src/gfx/renderJob/graph/passes/ReflectionPass.ts:48


sizeW ​

sizeW: number

Defined in: src/gfx/renderJob/graph/passes/ReflectionPass.ts:49


sizeH ​

sizeH: number

Defined in: src/gfx/renderJob/graph/passes/ReflectionPass.ts:50


probeSize ​

probeSize: number

Defined in: src/gfx/renderJob/graph/passes/ReflectionPass.ts:51


probeCount ​

probeCount: number

Defined in: src/gfx/renderJob/graph/passes/ReflectionPass.ts:52


mipCount ​

readonly mipCount: number = 8

Defined in: src/gfx/renderJob/graph/passes/ReflectionPass.ts:53

Methods ​

dispatchEvent() ​

dispatchEvent(event): void

Defined in: src/event/CEventDispatcher.ts:24

Dispatch an event to all registered objects with a specific type of listener.

Parameters ​

event ​

CEvent

Returns ​

void

Inherited from ​

RenderGraphPass.dispatchEvent


addEventListener() ​

addEventListener(type, callback, thisObject, param?, priority?): number

Defined in: src/event/CEventDispatcher.ts:78

register an event listener to event distancher.

Parameters ​

type ​

string | number

{string} event type.

callback ​

Function

{Function} The callback function that handles events. This function must accept an Event3D object as its unique parameter and cannot return any result. for example: function(evt:Event3D):void.

thisObject ​

any

{any} Current registration object, it'll call callback function.

param? ​

any = null

{any} the data binded to registered event, the default value is null.

priority? ​

number = 0

{number} The priority of callback function execution, with a larger set value having priority to call

Returns ​

number

Returns register event id

Inherited from ​

RenderGraphPass.addEventListener


removeEventListener() ​

removeEventListener(type, callback, thisObject): void

Defined in: src/event/CEventDispatcher.ts:112

Remove Event Listening

Parameters ​

type ​

string | number

{string} event type

callback ​

Function

{Function} callback function of event register

thisObject ​

any

{any} The current registered object.

Returns ​

void

Inherited from ​

RenderGraphPass.removeEventListener


removeEventListenerAt() ​

removeEventListenerAt(id): boolean

Defined in: src/event/CEventDispatcher.ts:132

Remove an event Listening with id

Parameters ​

id ​

number

Returns ​

boolean

Inherited from ​

RenderGraphPass.removeEventListenerAt


removeAllEventListener() ​

removeAllEventListener(eventType?): void

Defined in: src/event/CEventDispatcher.ts:152

Specify a event type to remove all related event listeners eventType event type, set null to remove all event listeners

Parameters ​

eventType? ​

string | number

Returns ​

void

Inherited from ​

RenderGraphPass.removeAllEventListener


containEventListener() ​

containEventListener(type): boolean

Defined in: src/event/CEventDispatcher.ts:184

whether the target presence of a listener with event type.

Parameters ​

type ​

string

{string} event type.

Returns ​

boolean

Returns a boolean.

Inherited from ​

RenderGraphPass.containEventListener


hasEventListener() ​

hasEventListener(type, callback?, thisObject?): boolean

Defined in: src/event/CEventDispatcher.ts:197

whether the target presence of a listener with event type. it associate more registration parameters.

Parameters ​

type ​

string | number

{string} event name.

callback? ​

Function = null

{Function} callback function of event register.

thisObject? ​

any = null

{any} The registered object.

Returns ​

boolean

Returns a boolean.

Inherited from ​

RenderGraphPass.hasEventListener


setup() ​

setup(b): void

Defined in: src/gfx/renderJob/graph/passes/ReflectionPass.ts:65

Allocate GPU resources, declare graph-level dependencies via b.read / b.write. Called from RenderGraph.compile() — setup is deferred from add() so add() call order doesn't constrain resource-dependency order. Forward references (reads to a resource a later-added pass creates) are resolved through a multi-round retry loop in compile().

Parameters ​

b ​

RenderGraphBuilder

Returns ​

void

Overrides ​

RenderGraphPass.setup


forceUpdate() ​

forceUpdate(): void

Defined in: src/gfx/renderJob/graph/passes/ReflectionPass.ts:102

Mark the cube-face cache dirty so the next frame re-renders all probes. Called from LightBase when a light moves.

Returns ​

void


execute() ​

execute(ctx): void

Defined in: src/gfx/renderJob/graph/passes/ReflectionPass.ts:106

Execute the pass for one frame. Implementations build command encoders via ctx.view.engine3D.context3D.gpuContext, read inputs via ctx.get('<name>'), and submit GPU work.

Parameters ​

ctx ​

RenderGraphPassContext

Returns ​

void

Overrides ​

RenderGraphPass.execute


destroy() ​

destroy(): void

Defined in: src/gfx/renderJob/graph/passes/ReflectionPass.ts:230

Optional teardown hook called from graph.destroy() — release orphan Object3Ds / view quads / device resources that the pass owns directly.

Returns ​

void

Overrides ​

RenderGraphPass.destroy