Class DepthOfFieldEffect

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/

Hierarchy (view full)

Constructors

  • Constructs a new depth of field effect.

    Parameters

    • Optional camera: Camera

      The main camera.

    • Optional options: {
          blendFunction?: BlendFunction;
          bokehScale?: number;
          focalLength?: number;
          focusDistance?: number;
          focusRange?: number;
          height?: number;
          resolutionScale?: number;
          resolutionX?: number;
          resolutionY?: number;
          width?: number;
          worldFocusDistance?: number;
          worldFocusRange?: number;
      }

      The options.

      • Optional blendFunction?: BlendFunction

        The blend function of this effect.

      • Optional bokehScale?: number

        The scale of the bokeh blur.

      • Optional focalLength?: number

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

      • Optional focusDistance?: number

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

      • Optional focusRange?: number

        The focus range. Range is [0.0, 1.0].

      • Optional height?: number

        Deprecated. Use resolutionY instead.

      • Optional resolutionScale?: number

        The resolution scale.

      • Optional resolutionX?: number

        The horizontal resolution.

      • Optional resolutionY?: number

        The vertical resolution.

      • Optional width?: number

        Deprecated. Use resolutionX instead.

      • Optional worldFocusDistance?: number

        The focus distance in world units.

      • Optional worldFocusRange?: number

        The focus distance in world units.

    Returns DepthOfFieldEffect

Properties

blendMode: BlendMode

The blend mode of this effect.

blurPass: KawaseBlurPass

This pass blurs the foreground CoC buffer to soften edges.

defines: Map<string, string>

Preprocessor macro definitions.

Call Effect.setChanged after changing macro definitions.

extensions: Set<WebGLExtension>

WebGL extensions that are required by this effect.

Call Effect.setChanged after adding or removing extensions.

name: string

The name of this effect.

renderer: WebGLRenderer

The renderer.

Deprecated

target: Vector3

A target position that should be kept in focus. Set to null to disable auto focus.

uniforms: Map<string, Uniform<any>>

Shader uniforms.

Call Effect.setChanged after adding or removing uniforms.

Accessors

  • get bokehScale(): number
  • The current bokeh scale.

    Returns number

  • set bokehScale(arg): void
  • Parameters

    • arg: number

    Returns void

  • get circleOfConfusionMaterial(): CircleOfConfusionMaterial
  • The circle of confusion material.

    Returns CircleOfConfusionMaterial

    Deprecated

    Use cocMaterial instead.

  • get cocMaterial(): CircleOfConfusionMaterial
  • The circle of confusion material.

    Returns CircleOfConfusionMaterial

  • get cocTexture(): Texture
  • The circle of confusion texture.

    Returns Texture

  • get inputColorSpace(): ColorSpace
  • Experimental

    The input color space.

    Returns ColorSpace

  • set inputColorSpace(arg): void
  • Protected Experimental

    Parameters

    • arg: ColorSpace

    Returns void

  • set mainCamera(arg): void
  • Sets the main camera.

    Parameters

    • arg: Camera

    Returns void

  • set mainScene(arg): void
  • Sets the main scene.

    Parameters

    • arg: Scene

    Returns void

  • get maskFunction(): MaskFunction
  • The mask function. Default is MULTIPLY_RGB.

    Returns MaskFunction

  • set maskFunction(arg): void
  • Parameters

    • arg: MaskFunction

    Returns void

  • get outputColorSpace(): ColorSpace
  • Experimental

    The output color space.

    Should only be changed if this effect converts the input colors to a different color space.

    Returns ColorSpace

  • set outputColorSpace(arg): void
  • Protected Experimental

    Parameters

    • arg: ColorSpace

    Returns void

  • get resolution(): Resolution
  • The resolution of this effect.

    Returns Resolution

Methods

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

    Parameters

    • target: Vector3

      The target.

    Returns number

    The normalized focus distance.

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

    The EffectComposer calls this method when it is being destroyed.

    Returns void

  • Returns the blend mode.

    The result of this effect will be blended with the result of the previous effect using this blend mode.

    Returns BlendMode

    The blend mode.

    Deprecated

    Use blendMode instead.

  • Returns the pass that blurs the foreground CoC buffer to soften edges.

    Returns KawaseBlurPass

    The blur pass.

    Deprecated

    Use blurPass instead.

  • Returns the current bokeh scale.

    Returns number

    The scale.

    Deprecated

    Use bokehScale instead.

  • Returns the circle of confusion material.

    Returns CircleOfConfusionMaterial

    The material.

    Deprecated

    Use cocMaterial instead.

  • Returns the preprocessor macro definitions.

    Returns Map<string, string>

    The extensions.

    Deprecated

    Use defines instead.

  • Returns the WebGL extensions that are required by this effect.

    Returns Set<WebGLExtension>

    The extensions.

    Deprecated

    Use extensions instead.

  • Returns the fragment shader.

    Returns string

    The fragment shader.

  • Returns the name of this effect.

    Returns string

    The name.

    Deprecated

    Use name instead.

  • Returns the resolution settings.

    Returns Resolution

    The resolution.

    Deprecated

    Use resolution instead.

  • Returns the current auto focus target.

    Returns Vector3

    The target.

    Deprecated

    Use target instead.

  • Returns the uniforms of this effect.

    Returns Map<string, Uniform<any>>

    The extensions.

    Deprecated

    Use uniforms instead.

  • Returns the vertex shader.

    Returns string

    The vertex shader.

  • Performs initialization tasks.

    Parameters

    • renderer: WebGLRenderer

      The renderer.

    • alpha: boolean

      Whether the renderer uses the alpha channel or not.

    • frameBufferType: number

      The type of the main frame buffers.

    Returns void

  • Protected

    Sets the effect attributes.

    Effects that have the same attributes will be executed in the order in which they were registered. Some attributes imply a higher priority.

    Parameters

    Returns void

  • Sets the bokeh scale.

    Parameters

    • value: number

      The scale.

    Returns void

    Deprecated

    Use bokehScale instead.

  • Protected

    Informs the associated EffectPass that this effect requires a shader recompilation.

    Should be called after changing macros or extensions and after adding/removing uniforms.

    Returns void

  • Sets the depth texture.

    You may override this method if your effect requires direct access to the depth texture that is bound to the associated EffectPass.

    Parameters

    • depthTexture: Texture

      A depth texture.

    • Optional depthPacking: DepthPackingStrategies

      The depth packing.

    Returns void

  • Protected

    Sets the fragment shader.

    Parameters

    • fragmentShader: string

      The fragment shader.

    Returns void

  • Sets the renderer.

    Parameters

    • renderer: WebGLRenderer

      The renderer.

    Returns void

    Deprecated

  • Updates the size of internal render targets.

    Parameters

    • width: number

      The width.

    • height: number

      The height.

    Returns void

  • Sets the auto focus target.

    Parameters

    • value: Vector3

      The target.

    Returns void

    Deprecated

    Use target instead.

  • Protected

    Sets the vertex shader.

    Parameters

    • vertexShader: string

      The vertex shader.

    Returns void

  • Updates this effect.

    Parameters

    • renderer: WebGLRenderer

      The renderer.

    • inputBuffer: WebGLRenderTarget<Texture>

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

    • Optional deltaTime: number

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

    Returns void