Name | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options
|
Object |
具有以下属性的对象:
|
Throws:
-
DeveloperError : options.textureScale 必须大于 0.0 且小于或等于 1.0。
-
DeveloperError : options.pixelFormat 必须是颜色格式。
-
DeveloperError : 当 options.pixelDatatype 为 FLOAT 时,此 WebGL 实现必须支持 OES_texture_float 扩展。检查 context.floatingPointTexture。
Examples:
// Simple stage to change the color
const fs =`
uniform sampler2D colorTexture;
varying vec2 v_textureCoordinates;
uniform float scale;
uniform vec3 offset;
void main() {
vec4 color = texture2D(colorTexture, v_textureCoordinates);
gl_FragColor = vec4(color.rgb * scale + offset, 1.0);
}`;
scene.postProcessStages.add(new Cesium.PostProcessStage({
fragmentShader : fs,
uniforms : {
scale : 1.1,
offset : function() {
return new Cesium.Cartesian3(0.1, 0.2, 0.3);
}
}
}));
// Simple stage to change the color of what is selected.
// If czm_selected returns true, the current fragment belongs to geometry in the selected array.
const fs =`
uniform sampler2D colorTexture;
varying vec2 v_textureCoordinates;
uniform vec4 highlight;
void main() {
vec4 color = texture2D(colorTexture, v_textureCoordinates);
if (czm_selected()) {
vec3 highlighted = highlight.a * highlight.rgb + (1.0 - highlight.a) * color.rgb;
gl_FragColor = vec4(highlighted, 1.0);
} else {
gl_FragColor = color;
}
}`;
const stage = scene.postProcessStages.add(new Cesium.PostProcessStage({
fragmentShader : fs,
uniforms : {
highlight : function() {
return new Cesium.Color(1.0, 0.0, 0.0, 0.5);
}
}
}));
stage.selected = [cesium3DTileFeature];
See:
Members
readonly clearColor : Color
着色器必须包含
colorTexture
、
depthTexture
或两者的采样器统一声明。
着色器必须包含
v_textureCoordinates
的
vec2
变化声明,用于对纹理制服进行采样。
PostProcessStageComposite
中的其他阶段参考。
readonly pixelDatatype : PixelDatatype
readonly pixelFormat : PixelFormat
readonly sampleMode : PostProcessStageSampleMode
readonly scissorRectangle : BoundingRectangle
BoundingRectangle
。默认边界矩形将禁用剪刀测试。
在片段着色器中,使用
czm_selected
来确定是否将后处理阶段应用于该片段。例如:
if (czm_selected(v_textureCoordinates)) {//apply post-process stage } else { gl_FragColor = texture2D(colorTexture, v_textureCoordinates); }
对象属性值可以是常量或函数。在执行后处理阶段之前,每个帧都会调用该函数。
常量值也可以是图像的 URI、数据 URI 或可用作纹理的 HTML 元素,例如 HTMLImageElement 或 HTMLCanvasElement。
如果此后处理阶段是不按顺序执行的
PostProcessStageComposite
的一部分,则常量值也可以是组合中另一个阶段的名称。这会将制服设置为具有该名称的舞台的输出纹理。
Methods
一旦一个对象被销毁,它就不应该被使用;调用
isDestroyed
以外的任何函数都将导致
DeveloperError
异常。因此,如示例中所做的那样,将返回值 (
undefined
) 分配给对象。
Throws:
-
DeveloperError : 该对象被销毁,即调用了destroy()。
如果这个对象被破坏了,它就不应该被使用;调用
isDestroyed
以外的任何函数都将导致
DeveloperError
异常。
Returns:
true
;否则,
false
。