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:40

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:42

Inherited from

Pass.renderToScreen

Methods

applyOcclusionMapToRenderedImage()

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

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

Parameters

renderer

WebGLRenderer

readBuffer?

WebGLRenderTarget<Texture>

writeBuffer?

WebGLRenderTarget<Texture>

Returns

void


blurOcclusionMap()

blurOcclusionMap(renderer, dimensions): void

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

Parameters

renderer

WebGLRenderer

dimensions

Vector2

Returns

void


dispose()

dispose(): void

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

Returns

void

Overrides

Pass.dispose


render()

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

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

Render the occlusion map.

Parameters

renderer

WebGLRenderer

The three.js renderer.

writeBuffer?

WebGLRenderTarget<Texture>

The buffer to write the final result.

readBuffer?

WebGLRenderTarget<Texture>

The buffer for the current of virtual depth.

view_id?

number = 0

The view to render.

Returns

void

Overrides

Pass.render


renderOcclusionMapFromReadBuffer()

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

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

Parameters

renderer

WebGLRenderer

readBuffer

RenderTarget

dimensions

Vector2

view_id

number

Returns

void


renderOcclusionMapFromScene()

renderOcclusionMapFromScene(renderer, dimensions, view_id): void

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

Parameters

renderer

WebGLRenderer

dimensions

Vector2

view_id

number

Returns

void


setDepthTexture()

setDepthTexture(depthTexture, rawValueToMeters, view_id): void

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

Parameters

depthTexture

Texture

rawValueToMeters

number

view_id

number

Returns

void


updateOcclusionMapUniforms()

updateOcclusionMapUniforms(uniforms, renderer): void

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

Parameters

uniforms

ShaderUniforms

renderer

WebGLRenderer

Returns

void