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

Effect

Extends:

three~EventDispatcher → Effect

Indirect Subclass:

SelectiveBloomEffect

An abstract effect.

Effects can be combined using the EffectPass.

Constructor Summary

Public Constructor
public

constructor(name: String, fragmentShader: String, options: Object)

Constructs a new effect.

Member Summary

Public Members
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.

Method Summary

Public Methods
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 Methods
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(name: String, fragmentShader: String, options: Object) source

Constructs a new effect.

Params:

NameTypeAttributeDescription
name String

The name of this effect. Doesn't have to be unique.

fragmentShader String

The fragment shader. This shader is required.

options Object
  • optional

Additional options.

options.attributes EffectAttribute
  • optional
  • default: EffectAttribute.NONE

The effect attributes that determine the execution priority and resource requirements.

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

The blend function of this effect.

options.defines Map<String, String>
  • optional

Custom preprocessor macro definitions. Keys are names and values are code.

options.uniforms Map<String, Uniform>
  • optional

Custom shader uniforms. Keys are names and values are uniforms.

options.extensions Set<WebGLExtension>
  • optional

WebGL extensions.

options.vertexShader String
  • optional
  • default: null

The vertex shader. Most effects don't need one.

Public Members

public blendMode: BlendMode source

The blend mode of this effect.

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

public defines: Map<String, String> source

Preprocessor macro definitions.

Call Effect.setChanged after changing macro definitions.

public extensions: Set<WebGLExtension> source

WebGL extensions that are required by this effect.

Call Effect.setChanged after adding or removing extensions.

public name: String source

The name of this effect.

public uniforms: Map<String, Uniform> source

Shader uniforms.

You may freely modify the values of these uniforms at runtime. However, uniforms should not be removed or added after the effect was created.

Call Effect.setChanged after adding or removing uniforms.

Public Methods

public dispose() source

Performs a shallow search for properties that define a dispose method and deletes them. The effect will be inoperative after this method was called!

The EffectPass calls this method when it is being destroyed. Do not call this method directly.

public getAttributes(): EffectAttribute source

Returns the effect attributes.

Return:

EffectAttribute

The attributes.

public getFragmentShader(): String source

Returns the fragment shader.

Return:

String

The fragment shader.

public getVertexShader(): String source

Returns the vertex shader.

Return:

String

The vertex shader.

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

Performs initialization tasks.

By overriding this method you gain access to the renderer. You'll also be able to configure your custom render targets to use the appropriate format (RGB or RGBA).

The provided renderer can be used to warm up special off-screen render targets by performing a preliminary render operation.

The EffectPass calls this method during its own initialization which happens after the size has been set.

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.

Example:

if(!alpha && frameBufferType === UnsignedByteType) { this.myRenderTarget.texture.format = RGBFormat; }

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

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.

Params:

NameTypeAttributeDescription
depthTexture Texture

A depth texture.

depthPacking Number
  • optional
  • default: 0

The depth packing.

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

Updates the size of this effect.

You may override this method in case you want to be informed about the main render size.

The EffectPass calls this method before this effect is initialized and every time its own size is updated.

Params:

NameTypeAttributeDescription
width Number

The width.

height Number

The height.

Example:

this.myRenderTarget.setSize(width, height);

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

Updates the effect by performing supporting operations.

This method is called by the EffectPass right before the main fullscreen render operation, even if the blend function is set to SKIP.

You may override this method if you need to render additional off-screen textures or update custom uniforms.

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.

Protected Methods

protected setAttributes(attributes: EffectAttribute) source

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.

Params:

NameTypeAttributeDescription
attributes EffectAttribute

The attributes.

protected setChanged() source

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

Call this method after changing macro definitions or extensions and after adding or removing uniforms.

protected setFragmentShader(fragmentShader: String) source

Sets the fragment shader.

Params:

NameTypeAttributeDescription
fragmentShader String

The fragment shader.

protected setVertexShader(vertexShader: String) source

Sets the vertex shader.

Params:

NameTypeAttributeDescription
vertexShader String

The vertex shader.