Home Reference Source
import {DepthOfFieldEffect} from 'postprocessing'
public class | source

DepthOfFieldEffect

Extends:

three~EventDispatcherEffect → DepthOfFieldEffect

Indirect Implements:

A depth of field effect.

Based on a graphics study by Adrian Courrèges and an article by Steve Avery: https://www.adriancourreges.com/blog/2016/09/09/doom-2016-graphics-study/ https://pixelmischiefblog.wordpress.com/2016/11/25/bokeh-depth-of-field/

Constructor Summary

Public Constructor
public

constructor(camera: Camera, options: Object)

Constructs a new depth of field effect.

Member Summary

Public Members
public

This pass blurs the foreground CoC buffer to soften edges.

public get

The current bokeh scale.

public set

Sets the bokeh scale.

public get

The circle of confusion material.

public get

The resolution of this effect.

public

target: Vector3

A target position that should be kept in focus.

Method Summary

Public Methods
public

calculateFocusDistance(target: Vector3): Number

Calculates the focus distance from the camera to the given position.

public

initialize(renderer: WebGLRenderer, alpha: Boolean, frameBufferType: Number)

Performs initialization tasks.

public

setDepthTexture(depthTexture: Texture, depthPacking: Number)

Sets the depth texture.

public

setSize(width: Number, height: Number)

Updates the size of internal render targets.

public

update(renderer: WebGLRenderer, inputBuffer: WebGLRenderTarget, deltaTime: Number)

Updates this effect.

Inherited Summary

From class Effect
public

The blend mode of this effect.

public

Preprocessor macro definitions.

public

WebGL extensions that are required by this effect.

public

The name of this effect.

public

uniforms: Map<String, Uniform>

Shader uniforms.

public

Performs a shallow search for properties that define a dispose method and deletes them.

public

Returns the effect attributes.

public

Returns the fragment shader.

public

Returns the vertex shader.

public

initialize(renderer: WebGLRenderer, alpha: Boolean, frameBufferType: Number)

Performs initialization tasks.

public

setDepthTexture(depthTexture: Texture, depthPacking: Number)

Sets the depth texture.

public

setSize(width: Number, height: Number)

Updates the size of this effect.

public

update(renderer: WebGLRenderer, inputBuffer: WebGLRenderTarget, deltaTime: Number)

Updates the effect by performing supporting operations.

protected

Sets the effect attributes.

protected

Informs the associated EffectPass that this effect has changed in a way that requires a shader recompilation.

protected

setFragmentShader(fragmentShader: String)

Sets the fragment shader.

protected

setVertexShader(vertexShader: String)

Sets the vertex shader.

Public Constructors

public constructor(camera: Camera, options: Object) source

Constructs a new depth of field effect.

Override:

Effect#constructor

Params:

NameTypeAttributeDescription
camera Camera

The main camera.

options Object
  • optional

The options.

options.blendFunction BlendFunction
  • optional
  • default: BlendFunction.NORMAL

The blend function of this effect.

options.focusDistance Number
  • optional
  • default: 0.0

The normalized focus distance. Range is [0.0, 1.0].

options.focalLength Number
  • optional
  • default: 0.1

The focal length. Range is [0.0, 1.0].

options.bokehScale Number
  • optional
  • default: 1.0

The scale of the bokeh blur.

options.width Number
  • optional
  • default: Resizer.AUTO_SIZE

The render width.

options.height Number
  • optional
  • default: Resizer.AUTO_SIZE

The render height.

Public Members

public blurPass: BlurPass source

This pass blurs the foreground CoC buffer to soften edges.

public get bokehScale: Number source

The current bokeh scale.

public set bokehScale: Number source

Sets the bokeh scale.

public get circleOfConfusionMaterial: CircleOfConfusionMaterial source

The circle of confusion material.

public get resolution: Resizer source

The resolution of this effect.

public target: Vector3 source

A target position that should be kept in focus.

Set this to null to disable auto focus.

Public Methods

public calculateFocusDistance(target: Vector3): Number source

Calculates the focus distance from the camera to the given position.

Params:

NameTypeAttributeDescription
target Vector3

The target.

Return:

Number

The normalized focus distance.

public initialize(renderer: WebGLRenderer, alpha: Boolean, frameBufferType: Number) source

Performs initialization tasks.

Override:

Effect#initialize

Params:

NameTypeAttributeDescription
renderer WebGLRenderer

The renderer.

alpha Boolean

Whether the renderer uses the alpha channel or not.

frameBufferType Number

The type of the main frame buffers.

public setDepthTexture(depthTexture: Texture, depthPacking: Number) source

Sets the depth texture.

Override:

Effect#setDepthTexture

Params:

NameTypeAttributeDescription
depthTexture Texture

A depth texture.

depthPacking Number
  • optional
  • default: BasicDepthPacking

The depth packing.

public setSize(width: Number, height: Number) source

Updates the size of internal render targets.

Override:

Effect#setSize

Params:

NameTypeAttributeDescription
width Number

The width.

height Number

The height.

public update(renderer: WebGLRenderer, inputBuffer: WebGLRenderTarget, deltaTime: Number) source

Updates this effect.

Override:

Effect#update

Params:

NameTypeAttributeDescription
renderer WebGLRenderer

The renderer.

inputBuffer WebGLRenderTarget

A frame buffer that contains the result of the previous pass.

deltaTime Number
  • optional

The time between the last frame and the current one in seconds.