# PostProcessStageLibrary

engine/Source/Scene/PostProcessStageLibrary.js 30
Contains functions for creating common post-process stages.

### Methods

#### static Cesium.PostProcessStageLibrary.createBlackAndWhiteStage() → PostProcessStage
engine/Source/Scene/PostProcessStageLibrary.js 753

Creates a post-process stage that renders the input texture with black and white gradations.

This stage has one uniform value, `gradations`, which scales the luminance of each pixel.

##### Returns:

A post-process stage that renders the input texture with black and white gradations.

#### static Cesium.PostProcessStageLibrary.createBlurStage() → PostProcessStageComposite
engine/Source/Scene/PostProcessStageLibrary.js 118

Creates a post-process stage that applies a Gaussian blur to the input texture. This stage is usually applied in conjunction with another stage.

This stage has the following uniforms: `delta`, `sigma`, and `stepSize`.

`delta` and `sigma` are used to compute the weights of a Gaussian filter. The equation is `exp((-0.5 * delta * delta) / (sigma * sigma))`. The default value for `delta` is `1.0`. The default value for `sigma` is `2.0`. `stepSize` is the distance to the next texel. The default is `1.0`.

##### Returns:

A post-process stage that applies a Gaussian blur to the input texture.

#### static Cesium.PostProcessStageLibrary.createBrightnessStage() → PostProcessStage
engine/Source/Scene/PostProcessStageLibrary.js 770

Creates a post-process stage that saturates the input texture.

This stage has one uniform value, `brightness`, which scales the saturation of each pixel.

##### Returns:

A post-process stage that saturates the input texture.

#### static Cesium.PostProcessStageLibrary.createDepthOfFieldStage() → PostProcessStageComposite
engine/Source/Scene/PostProcessStageLibrary.js 140

Creates a post-process stage that applies a depth of field effect.

Depth of field simulates camera focus. Objects in the scene that are in focus will be clear whereas objects not in focus will be blurred.

This stage has the following uniforms: `focalDistance`, `delta`, `sigma`, and `stepSize`.

`focalDistance` is the distance in meters from the camera to set the camera focus.

`delta`, `sigma`, and `stepSize` are the same properties as `PostProcessStageLibrary#createBlurStage`. The blur is applied to the areas out of focus.

##### Returns:

A post-process stage that applies a depth of field effect.

#### static Cesium.PostProcessStageLibrary.createEdgeDetectionStage() → PostProcessStage
engine/Source/Scene/PostProcessStageLibrary.js 240

Creates a post-process stage that detects edges.

Writes the color to the output texture with alpha set to 1.0 when it is on an edge.

This stage has the following uniforms: `color` and `length`

- `color` is the color of the highlighted edge. The default is `Color#BLACK`.
- `length` is the length of the edges in pixels. The default is `0.5`.

This stage is not supported in 2D.

##### Returns:

A post-process stage that applies an edge detection effect.

##### Example:

    // multiple silhouette effects
    const yellowEdge = Cesium.PostProcessStageLibrary.createEdgeDetectionStage();
    yellowEdge.uniforms.color = Cesium.Color.YELLOW;
    yellowEdge.selected = [feature0];

    const greenEdge = Cesium.PostProcessStageLibrary.createEdgeDetectionStage();
    greenEdge.uniforms.color = Cesium.Color.LIME;
    greenEdge.selected = [feature1];

    // draw edges around feature0 and feature1
    postProcessStages.add(Cesium.PostProcessStageLibrary.createSilhouetteStage([yellowEdge, greenEdge]);

#### static Cesium.PostProcessStageLibrary.createLensFlareStage() → PostProcessStage
engine/Source/Scene/PostProcessStageLibrary.js 822

Creates a post-process stage that applies an effect simulating light flaring a camera lens.

This stage has the following uniforms: `dirtTexture`, `starTexture`, `intensity`, `distortion`, `ghostDispersal`, `haloWidth`, `dirtAmount`, and `earthRadius`.

- `dirtTexture` is a texture sampled to simulate dirt on the lens.
- `starTexture` is the texture sampled for the star pattern of the flare.
- `intensity` is a scalar multiplied by the result of the lens flare. The default value is `2.0`.
- `distortion` is a scalar value that affects the chromatic effect distortion. The default value is `10.0`.
- `ghostDispersal` is a scalar indicating how far the halo effect is from the center of the texture. The default value is `0.4`.
- `haloWidth` is a scalar representing the width of the halo from the ghost dispersal. The default value is `0.4`.
- `dirtAmount` is a scalar representing the amount of dirt on the lens. The default value is `0.4`.
- `earthRadius` is the maximum radius of the earth. The default value is `Ellipsoid.WGS84.maximumRadius`.

##### Returns:

A post-process stage for applying a lens flare effect.

#### static Cesium.PostProcessStageLibrary.createNightVisionStage() → PostProcessStage
engine/Source/Scene/PostProcessStageLibrary.js 784

Creates a post-process stage that adds a night vision effect to the input texture.

##### Returns:

A post-process stage that adds a night vision effect to the input texture.

#### static Cesium.PostProcessStageLibrary.createSilhouetteStage(edgeDetectionStages) → PostProcessStageComposite
engine/Source/Scene/PostProcessStageLibrary.js 330

Creates a post-process stage that applies a silhouette effect.

A silhouette effect composites the color from the edge detection pass with input color texture.

This stage has the following uniforms when `edgeDetectionStages` is `undefined`: `color` and `length`

`color` is the color of the highlighted edge. The default is `Color#BLACK`. `length` is the length of the edges in pixels. The default is `0.5`.

Name | Type | Description
--- | --- | ---
`edgeDetectionStages` | Array.<PostProcessStage> | optional An array of edge detection post process stages.

##### Returns:

A post-process stage that applies a silhouette effect.

#### static Cesium.PostProcessStageLibrary.isAmbientOcclusionSupported(scene) → boolean
engine/Source/Scene/PostProcessStageLibrary.js 636

Whether or not an ambient occlusion stage is supported.

This stage requires the WEBGL_depth_texture extension.

Name | Type | Description
--- | --- | ---
`scene` | Scene | The scene.

##### Returns:

Whether this post process stage is supported.

##### See:

- {Context#depthTexture}
- WEBGL_depth_texture

#### static Cesium.PostProcessStageLibrary.isDepthOfFieldSupported(scene) → boolean
engine/Source/Scene/PostProcessStageLibrary.js 206

Whether or not a depth of field stage is supported.

This stage requires the WEBGL_depth_texture extension.

Name | Type | Description
--- | --- | ---
`scene` | Scene | The scene.

##### Returns:

Whether this post process stage is supported.

##### See:

- {Context#depthTexture}
- WEBGL_depth_texture

#### static Cesium.PostProcessStageLibrary.isEdgeDetectionSupported(scene) → boolean
engine/Source/Scene/PostProcessStageLibrary.js 265

Whether or not an edge detection stage is supported.

This stage requires the WEBGL_depth_texture extension.

Name | Type | Description
--- | --- | ---
`scene` | Scene | The scene.

##### Returns:

Whether this post process stage is supported.

##### See:

- {Context#depthTexture}
- WEBGL_depth_texture

#### static Cesium.PostProcessStageLibrary.isSilhouetteSupported(scene) → boolean
engine/Source/Scene/PostProcessStageLibrary.js 360

Whether or not a silhouette stage is supported.

This stage requires the WEBGL_depth_texture extension.

Name | Type | Description
--- | --- | ---
`scene` | Scene | The scene.

##### Returns:

Whether this post process stage is supported.

##### See:

- {Context#depthTexture}
- WEBGL_depth_texture

Need help? The fastest way to get answers is from the community and team on the Cesium Forum.