new Cesium.PostProcessStageComposite(options)
逻辑上一起执行的
PostProcessStage
s或其他后期处理组合阶段的集合。
所有阶段都是按照数组的顺序执行的。根据inputPreviousStageTexture
的值改变输入纹理。
如果inputPreviousStageTexture
为true
,则每个阶段的输入是之前执行的阶段渲染的输出纹理。
如果inputPreviousStageTexture
为false
,组合中的每个阶段的输入纹理都是相同的。输入纹理是场景渲染的纹理或前一阶段的输出纹理。
Name | Type | Description | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
具有以下属性的对象:
|
异常情况:
-
DeveloperError : options.stages.length 必须大于 0.0。
示例:
// 例1:separable blur filter
// blurXDirection的输入是场景渲染的纹理或前一阶段的输出。
// blurYDirection的输入是由blurXDirection渲染的纹理。
scene.postProcessStages.add(new Cesium.PostProcessStageComposite({
stages : [blurXDirection, blurYDirection]
}));
// 例2:引用另一个后期处理阶段的输出
scene.postProcessStages.add(new Cesium.PostProcessStageComposite({
inputPreviousStageTexture : false,
stages : [
// 和例1一样
new Cesium.PostProcessStageComposite({
inputPreviousStageTexture : true
stages : [blurXDirection, blurYDirection],
name : 'blur'
}),
// 因为inputPreviousStageTexture是false,所以这个阶段的输入纹理与blurXDirection的输入纹理是相同的
new Cesium.PostProcessStage({
fragmentShader : compositeShader,
uniforms : {
blurTexture : 'blur' // 名称为“blur”的组合的输出(blurYDirection渲染的纹理)。
}
})
]
});
// 例3:创建一个uniform别名
var 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
}));
参考:
成员变量
enabled : Boolean
准备就绪时是否执行此后期处理阶段。
所有的后期处理阶段都是按照数组的顺序执行的。根据
inputPreviousStageTexture
的值改变输入纹理。
如果inputPreviousStageTexture
为true
,每个阶段的输入是由场景渲染的输出纹理或在它之前执行的阶段渲染的输出纹理。
如果inputPreviousStageTexture
为false
,组合中的每个阶段的输入纹理都是相同的。输入纹理是场景渲染的纹理或前一阶段的输出纹理。
此组合中的后期处理阶段数。
此后期处理阶段的唯一名称,供后期处理阶段组合中的其他阶段参考。
确定此后期处理阶段是否已准备好执行。
selected : Array
为应用后期处理而选择的要素。
uniforms : Object
后期处理阶段的uniform值的别名。可能是
undefined
;在这种情况下,让每个阶段设置uniform的值。
内置方法
destroy()
销毁此对象持有的WebGL资源。销毁一个对象允许WebGL资源的确定性释放,而不是依赖于垃圾收集器来销毁这个对象。
如果这个对象被销毁了,它就不应该被使用;调用除isDestroyed
之外的任何函数都会导致DeveloperError
异常。
因此,将返回值(undefined
)赋给对象,如示例所示。
异常情况:
-
DeveloperError : 这个对象被销毁了。即destroy()被调用。
获取
index
处的后期处理阶段。
Name | Type | Description |
---|---|---|
index |
Number | 后期处理阶段或组合的索引。 |
返回值:
在索引处后期处理阶段或组合。
异常情况:
-
DeveloperError : index 必须大于等于 0。
-
DeveloperError : index 必须小于
PostProcessStageComposite#length
.
如果该对象被销毁,则返回true;否则,false。
如果这个对象被销毁了,它就不应该被使用;调用除isDestroyed
之外的任何函数都会导致DeveloperError
异常。
返回值:
true
如果该对象被销毁;否则,false
。