Skip to main content

Class: OcclusionPass

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

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

Implements​

Constructors​

Constructor​

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

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

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

Inherited from​

Pass.renderToScreen

Methods​

applyOcclusionMapToRenderedImage()​

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

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

Parameters​

renderer​

WebGLRenderer

readBuffer?​

WebGLRenderTarget<Texture<unknown, TextureEventMap>>

writeBuffer?​

WebGLRenderTarget<Texture<unknown, TextureEventMap>>

Returns​

void


blurOcclusionMap()​

blurOcclusionMap(renderer, dimensions): void

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

Parameters​

renderer​

WebGLRenderer

dimensions​

Vector2

Returns​

void


dispose()​

dispose(): void

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

Returns​

void

Implementation of​

OcclusionPassBackend.dispose

Overrides​

Pass.dispose


render()​

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

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

Render the occlusion map.

Parameters​

renderer​

WebGLOrWebGPURenderer

The three.js renderer.

writeBuffer?​

WebGLRenderTarget<Texture<unknown, TextureEventMap>>

The buffer to write the final result.

readBuffer?​

WebGLRenderTarget<Texture<unknown, TextureEventMap>>

The buffer for the current of virtual depth.

viewId?​

number = 0

The view to render.

Returns​

void

Implementation of​

OcclusionPassBackend.render

Overrides​

Pass.render


renderOcclusionMapFromReadBuffer()​

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

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

Parameters​

renderer​

WebGLRenderer

readBuffer​

RenderTarget

dimensions​

Vector2

viewId​

number

Returns​

void


renderOcclusionMapFromScene()​

renderOcclusionMapFromScene(renderer, dimensions, viewId): void

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

Parameters​

renderer​

WebGLRenderer

dimensions​

Vector2

viewId​

number

Returns​

void


setDepthTexture()​

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

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

Parameters​

depthTexture​

Texture

rawValueToMeters​

number

viewId​

number

depthNear?​

number

depthViewMatrix?​

Matrix4

depthProjectionMatrix?​

Matrix4

Returns​

void

Implementation of​

OcclusionPassBackend.setDepthTexture


updateOcclusionMapUniforms()​

updateOcclusionMapUniforms(uniforms, renderer): void

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

Parameters​

uniforms​

ShaderUniforms

renderer​

WebGLOrWebGPURenderer

Returns​

void

Implementation of​

OcclusionPassBackend.updateOcclusionMapUniforms