Skip to main content

Class: OcclusionPass

Defined in: src/depth/occlusion/OcclusionPass.ts:29

Occlusion postprocessing shader pass. This is used to generate an occlusion map. There are two modes: Mode A: Generate an occlusion map for individual materials to use. Mode B: Given a rendered frame, run as a postprocessing pass, occluding all items in the frame. The steps are

  1. Compute an occlusion map between the real and virtual depth.
  2. Blur the occlusion map using Kawase blur.
  3. (Mode B only) Apply the occlusion map to the rendered frame.

Extends

  • Pass

Constructors

Constructor

new OcclusionPass(scene, camera, useFloatDepth, renderToScreen, occludableItemsLayer): OcclusionPass

Defined in: src/depth/occlusion/OcclusionPass.ts:41

Parameters

scene

Scene

camera

PerspectiveCamera

useFloatDepth

boolean = true

renderToScreen

boolean = false

occludableItemsLayer

number = OCCLUDABLE_ITEMS_LAYER

Returns

OcclusionPass

Overrides

Pass.constructor

Properties

renderToScreen

renderToScreen: boolean = false

Defined in: src/depth/occlusion/OcclusionPass.ts:45

Inherited from

Pass.renderToScreen

Methods

applyOcclusionMapToRenderedImage()

applyOcclusionMapToRenderedImage(renderer, readBuffer?, writeBuffer?): void

Defined in: src/depth/occlusion/OcclusionPass.ts:294

Parameters

renderer

WebGLRenderer

readBuffer?

WebGLRenderTarget<Texture<unknown>>

writeBuffer?

WebGLRenderTarget<Texture<unknown>>

Returns

void


blurOcclusionMap()

blurOcclusionMap(renderer, dimensions): void

Defined in: src/depth/occlusion/OcclusionPass.ts:258

Parameters

renderer

WebGLRenderer

dimensions

Vector2

Returns

void


dispose()

dispose(): void

Defined in: src/depth/occlusion/OcclusionPass.ts:308

Returns

void

Overrides

Pass.dispose


render()

render(renderer, writeBuffer?, readBuffer?, viewId?): void

Defined in: src/depth/occlusion/OcclusionPass.ts:164

Render the occlusion map.

Parameters

renderer

WebGLRenderer

The three.js renderer.

writeBuffer?

WebGLRenderTarget<Texture<unknown>>

The buffer to write the final result.

readBuffer?

WebGLRenderTarget<Texture<unknown>>

The buffer for the current of virtual depth.

viewId?

number = 0

The view to render.

Returns

void

Overrides

Pass.render


renderOcclusionMapFromReadBuffer()

renderOcclusionMapFromReadBuffer(renderer, readBuffer, dimensions, viewId): void

Defined in: src/depth/occlusion/OcclusionPass.ts:228

Parameters

renderer

WebGLRenderer

readBuffer

RenderTarget

dimensions

Vector2

viewId

number

Returns

void


renderOcclusionMapFromScene()

renderOcclusionMapFromScene(renderer, dimensions, viewId): void

Defined in: src/depth/occlusion/OcclusionPass.ts:191

Parameters

renderer

WebGLRenderer

dimensions

Vector2

viewId

number

Returns

void


setDepthTexture()

setDepthTexture(depthTexture, rawValueToMeters, viewId, depthNear?): void

Defined in: src/depth/occlusion/OcclusionPass.ts:143

Parameters

depthTexture

Texture

rawValueToMeters

number

viewId

number

depthNear?

number

Returns

void


updateOcclusionMapUniforms()

updateOcclusionMapUniforms(uniforms, renderer): void

Defined in: src/depth/occlusion/OcclusionPass.ts:316

Parameters

uniforms

ShaderUniforms

renderer

WebGLRenderer

Returns

void