EventDispatcherNodeTempNode

PassNode

Represents a render pass (sometimes called beauty pass) in context of post processing. This pass produces a render for the given scene and camera and can provide multiple outputs via MRT for further processing.

Code Example

const postProcessing = new PostProcessing( renderer );
const scenePass = pass( scene, camera );
postProcessing.outputNode = scenePass;

Constructor

new PassNode( scope : 'color' | 'depth', scene : Scene, camera : Camera, options : Object )

Constructs a new pass node.

scope

The scope of the pass. The scope determines whether the node outputs color or depth.

scene

A reference to the scene.

camera

A reference to the camera.

options

Options for the internal render target.

Properties

.camera : Camera

A reference to the camera.

.contextNode : ContextNode | null

An optional global context for the pass.

.global : boolean

This flag is used for global cache.

Default is true.

Overrides: TempNode#global

.isPassNode : boolean (readonly)

This flag can be used for type testing.

Default is true.

.opaque : boolean

Whether the pass is opaque.

Default is true.

.options : Object

Options for the internal render target.

.overrideMaterial : Material | null

An optional override material for the pass.

.renderTarget : RenderTarget

The pass's render target.

.scene : Scene

A reference to the scene.

.scope : 'color' | 'depth'

The scope of the pass. The scope determines whether the node outputs color or depth.

.transparent : boolean

Whether the pass is transparent.

Default is false.

.updateBeforeType : string

The updateBeforeType is set to NodeUpdateType.FRAME since the node renders the scene once per frame in its PassNode#updateBefore method.

Default is 'frame'.

Overrides: TempNode#updateBeforeType

.COLOR : 'color'

.DEPTH : 'depth'

Methods

.compileAsync( renderer : Renderer ) : Promise (async)

Precompiles the pass.

Note that this method must be called after the pass configuration is complete. So calls like setMRT() and getTextureNode() must proceed the precompilation.

renderer

The renderer.

See:
Returns: A Promise that resolves when the compile has been finished.

.dispose()

Frees internal resources. Should be called when the node is no longer in use.

Overrides: TempNode#dispose

.getLayers() : Layers

Gets the current layer configuration of the pass.

Returns: .

.getLinearDepthNode( name : string ) : Node

Returns a linear depth node of this pass.

name

The output name to get the linear depth node for. In most cases the default 'depth' can be used however the parameter exists for custom depth outputs.

Default is 'depth'.

Returns: The linear depth node.

.getMRT() : MRTNode

Returns the current MRT node.

Returns: The current MRT node.

.getPreviousTexture( name : string ) : Texture

Returns the texture holding the data of the previous frame for the given output name.

name

The output name to get the texture for.

Returns: The texture holding the data of the previous frame.

.getPreviousTextureNode( name : string ) : TextureNode

Returns the previous texture node for the given output name.

name

The output name to get the previous texture node for.

Default is 'output'.

Returns: The previous texture node.

.getResolution() : number

Gets the current resolution of the pass.

Deprecated: since r181. Use `getResolutionScale()` instead.
Returns: The current resolution. A value of 1 means full resolution.

.getResolutionScale() : number

Gets the current resolution scale of the pass.

Returns: The current resolution scale. A value of 1 means full resolution.

.getTexture( name : string ) : Texture

Returns the texture for the given output name.

name

The output name to get the texture for.

Returns: The texture.

.getTextureNode( name : string ) : TextureNode

Returns the texture node for the given output name.

name

The output name to get the texture node for.

Default is 'output'.

Returns: The texture node.

.getViewZNode( name : string ) : Node

Returns a viewZ node of this pass.

name

The output name to get the viewZ node for. In most cases the default 'depth' can be used however the parameter exists for custom depth outputs.

Default is 'depth'.

Returns: The viewZ node.

.setLayers( layers : Layers ) : PassNode

Sets the layer configuration that should be used when rendering the pass.

layers

The layers object to set.

Returns: A reference to this pass.

.setMRT( mrt : MRTNode ) : PassNode

Sets the given MRT node to setup MRT for this pass.

mrt

The MRT object.

Returns: A reference to this pass.

.setPixelRatio( pixelRatio : number )

Sets the pixel ratio the pass's render target and updates the size.

pixelRatio

The pixel ratio to set.

.setResolution( resolution : number ) : PassNode

Sets the resolution for the pass. The resolution is a factor that is multiplied with the renderer's width and height.

resolution

The resolution to set. A value of 1 means full resolution.

Deprecated: since r181. Use `setResolutionScale()` instead.
Returns: A reference to this pass.

.setResolutionScale( resolutionScale : number ) : PassNode

Sets the resolution scale for the pass. The resolution scale is a factor that is multiplied with the renderer's width and height.

resolutionScale

The resolution scale to set. A value of 1 means full resolution.

Returns: A reference to this pass.

.setScissor( x : number | Vector4, y : number, width : number, height : number )

This method allows to define the pass's scissor rectangle. By default, the scissor rectangle is kept in sync with the pass's dimensions. To reverse the process and use auto-sizing again, call the method with null as the single argument.

x

The horizontal coordinate for the lower left corner of the box in logical pixel unit. Instead of passing four arguments, the method also works with a single four-dimensional vector.

y

The vertical coordinate for the lower left corner of the box in logical pixel unit.

width

The width of the scissor box in logical pixel unit.

height

The height of the scissor box in logical pixel unit.

.setSize( width : number, height : number )

Sets the size of the pass's render target. Honors the pixel ratio.

width

The width to set.

height

The height to set.

.setViewport( x : number | Vector4, y : number, width : number, height : number )

This method allows to define the pass's viewport. By default, the viewport is kept in sync with the pass's dimensions. To reverse the process and use auto-sizing again, call the method with null as the single argument.

x

The horizontal coordinate for the lower left corner of the viewport origin in logical pixel unit.

y

The vertical coordinate for the lower left corner of the viewport origin in logical pixel unit.

width

The width of the viewport in logical pixel unit.

height

The height of the viewport in logical pixel unit.

.toggleTexture( name : string )

Switches current and previous textures for the given output name.

name

The output name.

Source

src/nodes/display/PassNode.js