PostProcessStage
s or other post-process composite stages that execute together logically.
All stages are executed in the order of the array. The input texture changes based on the value of inputPreviousStageTexture
.
If inputPreviousStageTexture
is true
, the input to each stage is the output texture rendered to by the scene or of the stage that executed before it.
If inputPreviousStageTexture
is false
, the input texture is the same for each stage in the composite. The input texture is the texture rendered to by the scene
or the output texture of the previous stage.
Name | Type | Description | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
An object with the following properties:
|
Throws:
-
DeveloperError : options.stages.length must be greater than 0.0.
Examples:
// Example 1: separable blur filter
// The input to blurXDirection is the texture rendered to by the scene or the output of the previous stage.
// The input to blurYDirection is the texture rendered to by blurXDirection.
scene.postProcessStages.add(new Cesium.PostProcessStageComposite({
stages : [blurXDirection, blurYDirection]
}));
// Example 2: referencing the output of another post-process stage
scene.postProcessStages.add(new Cesium.PostProcessStageComposite({
inputPreviousStageTexture : false,
stages : [
// The same as Example 1.
new Cesium.PostProcessStageComposite({
inputPreviousStageTexture : true
stages : [blurXDirection, blurYDirection],
name : 'blur'
}),
// The input texture for this stage is the same input texture to blurXDirection since inputPreviousStageTexture is false
new Cesium.PostProcessStage({
fragmentShader : compositeShader,
uniforms : {
blurTexture : 'blur' // The output of the composite with name 'blur' (the texture that blurYDirection rendered to).
}
})
]
});
// Example 3: create a uniform alias
const uniforms = {};
Cesium.defineProperties(uniforms, {
filterSize : {
get : function() {
return blurXDirection.uniforms.filterSize;
},
set : function(value) {
blurXDirection.uniforms.filterSize = blurYDirection.uniforms.filterSize = value;
}
}
});
scene.postProcessStages.add(new Cesium.PostProcessStageComposite({
stages : [blurXDirection, blurYDirection],
uniforms : uniforms
}));
See:
Members
inputPreviousStageTexture
.
If inputPreviousStageTexture
is true
, the input to each stage is the output texture rendered to by the scene or of the stage that executed before it.
If inputPreviousStageTexture
is false
, the input texture is the same for each stage in the composite. The input texture is the texture rendered to by the scene
or the output texture of the previous stage.
undefined
; in which case, get each stage to set uniform values.
Methods
Once an object is destroyed, it should not be used; calling any function other than
isDestroyed
will result in a DeveloperError
exception. Therefore,
assign the return value (undefined
) to the object as done in the example.
Throws:
-
DeveloperError : This object was destroyed, i.e., destroy() was called.
get(index) → PostProcessStage|PostProcessStageComposite
index
Name | Type | Description |
---|---|---|
index |
Number | The index of the post-process stage or composite. |
Returns:
Throws:
-
DeveloperError : index must be greater than or equal to 0.
-
DeveloperError : index must be less than
PostProcessStageComposite#length
.
If this object was destroyed, it should not be used; calling any function other than
isDestroyed
will result in a DeveloperError
exception.
Returns:
true
if this object was destroyed; otherwise, false
.