在场景渲染的纹理或上一个后处理阶段的输出上运行后处理阶段。
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。
- PostProcessStageComposite
Examples:
// Simple stage to change the color
var fs =
'uniform sampler2D colorTexture;\n' +
'varying vec2 v_textureCoordinates;\n' +
'uniform float scale;\n' +
'uniform vec3 offset;\n' +
'void main() {\n' +
' vec4 color = texture2D(colorTexture, v_textureCoordinates);\n' +
' gl_FragColor = vec4(color.rgb * scale + offset, 1.0);\n' +
'}\n';
scene.postProcessStages.add(new SuperMap3D.PostProcessStage({
fragmentShader : fs,
uniforms : {
scale : 1.1,
offset : function() {
return new SuperMap3D.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.
var fs =
'uniform sampler2D colorTexture;\n' +
'varying vec2 v_textureCoordinates;\n' +
'uniform vec4 highlight;\n' +
'void main() {\n' +
' vec4 color = texture2D(colorTexture, v_textureCoordinates);\n' +
' if (czm_selected()) {\n' +
' vec3 highlighted = highlight.a * highlight.rgb + (1.0 - highlight.a) * color.rgb;\n' +
' gl_FragColor = vec4(highlighted, 1.0);\n' +
' } else { \n' +
' gl_FragColor = color;\n' +
' }\n' +
'}\n';
var stage = scene.postProcessStages.add(new SuperMap3D.PostProcessStage({
fragmentShader : fs,
uniforms : {
highlight : function() {
return new SuperMap3D.Color(1.0, 0.0, 0.0, 0.5);
}
}
}));
stage.selected = [cesium3DTileFeature];
See:
Members
-
readonlyclearColor : Color
-
要清除输出纹理的颜色。
-
是否在准备就绪时执行该后处理阶段。
-
是否强制输出纹理尺寸都等于 2 的幂次。二的幂次将是尺寸最小值的下一个二的幂次。
-
执行后处理阶段时要使用的片段着色器。
着色器必须包含 colorTexture、depthTexture 或两者的采样器统一声明。
着色器必须包含 v_textureCoordinates 的 vec2 变化声明,以便对纹理变量进行采样。
-
后处理阶段的唯一名称,供
PostProcessStageComposite
中的其他阶段引用。 -
输出纹理的像素数据类型。
-
readonlypixelFormat : PixelFormat
-
输出纹理的颜色像素格式。
-
确定后处理阶段是否已准备就绪。只有当 ready 和
PostProcessStage#enabled
都为 true 时,才会执行舞台。在等待纹理加载时,阶段不会就绪。 -
如何对输入的颜色纹理进行采样。
-
readonlyscissorRectangle : BoundingRectangle
-
用于剪切测试的
BoundingRectangle
。默认的包围矩形将禁用剪刀测试。 -
为应用后处理而选择的特征。
在片段着色器中,使用 czm_selected 来决定是否对该片段应用后处理阶段。例如:
if (czm_selected(v_textureCoordinates)) { // apply post-process stage } else { gl_FragColor = texture2D(colorTexture, v_textureCordinates); }
-
0.0, 1.0] 范围内的一个数字,用于缩放输出纹理的尺寸。缩放比例为 1.0 时,后处理阶段的纹理尺寸将与视口大小相同。
-
对象,其属性用于设置片段着色器的变量。
对象属性值可以是常量,也可以是函数。函数将在后处理阶段执行前的每一帧被调用。
常量值也可以是影像的 URI、数据 URI 或可用作纹理的 HTML 元素(如 HTMLImageElement 或 HTMLCanvasElement)。
如果后处理阶段是不串联执行的
PostProcessStageComposite
的一部分,常量值也可以是 合成中另一个阶段的名称。这将把统一值设置为具有该名称的阶段的输出纹理。
Methods
-
销毁该对象持有的 WebGL 资源。 销毁对象可以确定性地释放 WebGL 资源,而不是依赖垃圾回收器来销毁该对象。
一旦对象被销毁,就不得再使用;调用 isDestroyed 以外的任何函数都将导致
DeveloperError
异常。 因此,请按照示例中的方法将返回值(undefined)赋值给对象。Throws:
-
DeveloperError : This object was destroyed, i.e., destroy() was called.
-
-
如果该对象已被销毁,则返回 true;否则返回 false。
如果该对象已被销毁,则不应使用;调用 isDestroyed 以外的任何函数都将导致
DeveloperError
异常。Returns:
如果该对象已被销毁,则为 true;否则为 false。