Effect
Extends:
Direct Subclass:
Indirect Subclass:
Implements:
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 get |
inputColorSpace: ColorSpace this get is experimental.
The input color space. |
|
public set |
mainCamera: Camera Sets the main camera. |
|
public set |
mainScene: Scene Sets the main scene. |
|
public |
The name of this effect. |
|
public get |
outputColorSpace: ColorSpace this get is experimental.
The output color space. |
|
public |
Shader uniforms. |
Protected Members | ||
protected set |
inputColorSpace: ColorSpace this set is experimental.
|
|
protected set |
outputColorSpace: ColorSpace this set is experimental.
|
|
protected |
renderer: WebGLRenderer this member was deprecated.
The renderer. |
Method Summary
Public Methods | ||
public |
dispose() Performs a shallow search for properties that define a dispose method and deletes them. |
|
public |
Returns the effect attributes. |
|
public |
this method was deprecated. Use blendMode instead.
Returns the blend mode. |
|
public |
getDefines(): Map<String, String> this method was deprecated. Use defines instead.
Returns the preprocessor macro definitions. |
|
public |
this method was deprecated. Use extensions instead.
Returns the WebGL extensions that are required by this effect. |
|
public |
Returns the fragment shader. |
|
public |
this method was deprecated. Use name instead.
Returns the name of this effect. |
|
public |
getUniforms(): Map<String, Uniform> this method was deprecated. Use uniforms instead.
Returns the uniforms of this effect. |
|
public |
Returns the vertex shader. |
|
public |
initialize(renderer: WebGLRenderer, alpha: Boolean, frameBufferType: Number) Performs initialization tasks. |
|
public |
setDepthTexture(depthTexture: Texture, depthPacking: DepthPackingStrategies) Sets the depth texture. |
|
public |
setRenderer(renderer: WebGLRenderer) this method was deprecated.
Sets the renderer. |
|
public |
Updates the size of this effect. |
|
public |
Updates this effect by performing supporting operations. |
Protected Methods | ||
protected |
setAttributes(attributes: EffectAttribute) Sets the effect attributes. |
|
protected |
Informs the associated EffectPass that this effect 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:
Name | Type | Attribute | Description |
name | String | The name of this effect. Doesn't have to be unique. |
|
fragmentShader | String | The fragment shader. This shader is required. |
|
options | Object |
|
Additional options. |
options.attributes | EffectAttribute |
|
The effect attributes that determine the execution priority and resource requirements. |
options.blendFunction | BlendFunction |
|
The blend function of this effect. |
options.defines | Map<String, String> |
|
Custom preprocessor macro definitions. Keys are names and values are code. |
options.uniforms | Map<String, Uniform> |
|
Custom shader uniforms. Keys are names and values are uniforms. |
options.extensions | Set<WebGLExtension> |
|
WebGL extensions. |
options.vertexShader | String |
|
The vertex shader. Most effects don't need one. |
Public Members
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 get outputColorSpace: ColorSpace source
The output color space.
Should only be changed if this effect converts the input colors to a different color space.
public uniforms: Map<String, Uniform> source
Shader uniforms.
Call Effect.setChanged after adding or removing uniforms.
Protected Members
Public Methods
public dispose() source
Performs a shallow search for properties that define a dispose method and deletes them.
The EffectComposer calls this method when it is being destroyed.
public getBlendMode(): BlendMode source
Returns the blend mode.
The result of this effect will be blended with the result of the previous effect using this blend mode.
public getDefines(): Map<String, String> source
Returns the preprocessor macro definitions.
public getExtensions(): Set<WebGLExtension> source
Returns the WebGL extensions that are required by this effect.
public getName(): String source
Returns the name of this effect.
public getUniforms(): Map<String, Uniform> source
Returns the uniforms of this effect.
public initialize(renderer: WebGLRenderer, alpha: Boolean, frameBufferType: Number) source
Performs initialization tasks.
This method is called when the associated EffectPass is added to an EffectComposer.
Example:
if(!alpha && frameBufferType === UnsignedByteType) { this.myRenderTarget.texture.format = RGBFormat; }
public setDepthTexture(depthTexture: Texture, depthPacking: DepthPackingStrategies) 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:
Name | Type | Attribute | Description |
depthTexture | Texture | A depth texture. |
|
depthPacking | DepthPackingStrategies |
|
The depth packing. |
public setRenderer(renderer: WebGLRenderer) source
Sets the renderer.
Params:
Name | Type | Attribute | Description |
renderer | WebGLRenderer | The renderer. |
public setSize(width: Number, height: Number) source
Updates the size of this effect.
You may override this method if you want to be informed about the size of the backbuffer/canvas. This method is called before initialize and every time the size of the EffectComposer changes.
public update(renderer: WebGLRenderer, inputBuffer: WebGLRenderTarget, deltaTime: Number) source
Updates this 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 update custom uniforms or render additional off-screen textures.
Params:
Name | Type | Attribute | Description |
renderer | WebGLRenderer | The renderer. |
|
inputBuffer | WebGLRenderTarget | A frame buffer that contains the result of the previous pass. |
|
deltaTime | Number |
|
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:
Name | Type | Attribute | Description |
attributes | EffectAttribute | The attributes. |
protected setChanged() source
Informs the associated EffectPass that this effect requires a shader recompilation.
Should be called after changing macros or extensions and after adding/removing uniforms.