麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

Cesium API - PostProcessStageComposite 中文文档

本文介绍下Cesium中 PostProcessStageComposite API的详细使用说明。

PostProcessStageComposite API 调用方法

new Cesium.PostProcessStageComposite(options)
逻辑上一起执行的PostProcessStages或其他后期处理组合阶段的集合。

所有阶段都是按照数组的顺序执行的。根据inputPreviousStageTexture的值改变输入纹理。 如果inputPreviousStageTexturetrue,则每个阶段的输入是之前执行的阶段渲染的输出纹理。 如果inputPreviousStageTexturefalse,组合中的每个阶段的输入纹理都是相同的。输入纹理是场景渲染的纹理或前一阶段的输出纹理。

Name Type Description
options Object 具有以下属性的对象:
Name Type Default Description
stages Array 要按顺序执行的PostProcessStages或组合的数组。
inputPreviousStageTexture Boolean true optional 是否执行每个后期处理阶段,其中一个阶段的输入是前一个阶段的输出。否则,每个包含的阶段的输入就是在合成之前执行的阶段的输出。
name String createGuid() optional 此后期处理阶段的唯一名称,供其他组合参考。如果没有提供名称,将生成GUID。
uniforms Object optional 后期处理阶段uniforms的别名。
异常情况:
示例:
// 例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
}));
参考:

成员变量

准备就绪时是否执行此后期处理阶段。
readonlyinputPreviousStageTexture : Boolean
所有的后期处理阶段都是按照数组的顺序执行的。根据inputPreviousStageTexture的值改变输入纹理。 如果inputPreviousStageTexturetrue,每个阶段的输入是由场景渲染的输出纹理或在它之前执行的阶段渲染的输出纹理。 如果inputPreviousStageTexturefalse,组合中的每个阶段的输入纹理都是相同的。输入纹理是场景渲染的纹理或前一阶段的输出纹理。
readonlylength : Number
此组合中的后期处理阶段数。
此后期处理阶段的唯一名称,供后期处理阶段组合中的其他阶段参考。
readonlyready : Boolean
确定此后期处理阶段是否已准备好执行。
为应用后期处理而选择的要素。
后期处理阶段的uniform值的别名。可能是undefined;在这种情况下,让每个阶段设置uniform的值。

内置方法

销毁此对象持有的WebGL资源。销毁一个对象允许WebGL资源的确定性释放,而不是依赖于垃圾收集器来销毁这个对象。

如果这个对象被销毁了,它就不应该被使用;调用除isDestroyed之外的任何函数都会导致DeveloperError异常。 因此,将返回值(undefined)赋给对象,如示例所示。

异常情况:
  • DeveloperError : 这个对象被销毁了。即destroy()被调用。
参考:
获取index处的后期处理阶段。
Name Type Description
index Number 后期处理阶段或组合的索引。
返回值:
在索引处后期处理阶段或组合。
异常情况:
isDestroyed()Boolean
如果该对象被销毁,则返回true;否则,false。

如果这个对象被销毁了,它就不应该被使用;调用除isDestroyed之外的任何函数都会导致DeveloperError异常。

返回值:
true如果该对象被销毁;否则,false
参考:

其他API

Cesium中文API文档手册(v1.63.1版本)参考:《Cesium中文API文档手册(v1.63.1版本)

相关阅读

麻辣GIS-Sailor

作者:

GIS爱好者,学GIS,更爱玩GIS。

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

手机阅读
公众号关注
知识星球
手机阅读
麻辣GIS微信公众号关注
最新GIS干货
关注麻辣GIS知识星球
私享圈子

留言板(小编看到第一时间回复)