MaterialAppearance

new Cesium.MaterialAppearance ( options )

任意几何的外观(例如,与 EllipsoidSurfaceAppearance 相对)支持材质着色。
Name Type Description
options Object 可选 具有以下属性的对象:
名称 类型 默认 说明
flat 布尔值 错误 可选 true 时,片段着色器中将使用平面阴影,这意味着不考虑照明。
faceForward 布尔值 !options.closed 可选 如果为 true ,则片段着色器会根据需要翻转表面法线,以确保法线面对观察者以避免黑斑。当几何图形的两侧都应像 WallGeometry 一样着色时,这很有用。
半透明 布尔值 可选 如果为 true ,则该几何图形应显示为半透明,因此 MaterialAppearance#renderState 启用了alpha混合。 /td>
已关闭 布尔值 错误 可选 如果 true 为true,则几何将被关闭,因此 MaterialAppearance#renderState 启用了背面剔除。 /td>
materialSupport MaterialAppearance.MaterialSupportType MaterialAppearance.MaterialSupport.TEXTURED 可选 支持的材料类型。
材料 材料 Material.ColorType 可选 用于确定片段颜色的材料。
vertexShaderSource 字符串 可选 可选的GLSL顶点着色器源,用于覆盖默认的顶点着色器。
fragmentShaderSource 字符串 可选 可选的GLSL片段着色器源,用于覆盖默认的片段着色器。
renderState 对象 可选 可选的渲染状态将覆盖默认的渲染状态。
Example:
var primitive = new Cesium.Primitive({
  geometryInstances : new Cesium.GeometryInstance({
    geometry : new Cesium.WallGeometry({
            materialSupport :  Cesium.MaterialAppearance.MaterialSupport.BASIC.vertexFormat,
      // ...
    })
  }),
  appearance : new Cesium.MaterialAppearance({
    material : Cesium.Material.fromType('Color'),
    faceForward : true
  })

});
Demo:
See:

Namespaces

MaterialSupport

Members

readonly closed : Boolean

如果为 true ,则几何将被关闭,因此 MaterialAppearance#renderState 启用了背面剔除。如果查看者输入了几何图形,则它将不可见。
Default Value: false

readonly faceForward : Boolean

如果为 true ,则片段着色器将翻转表面法线根据需要确保法线面向观看者以避免黑点。当几何图形的两边都应为阴影像 WallGeometry 一样。
Default Value: true

readonly flat : Boolean

如果为 true ,则在片段着色器中使用平面阴影,这意味着不考虑照明。
Default Value: false

readonly fragmentShaderSource : String

片段着色器的GLSL源代码。完整片段着色器源代码是根据程序 MaterialAppearance#material 而构建的, MaterialAppearance#flat MaterialAppearance#faceForward 。使用 MaterialAppearance#getFragmentShaderSource 获取完整的源代码。
用于确定片段颜色的材料。与其他 MaterialAppearance 不同属性,它不是只读的,因此外观的材质可以随时更改。
Default Value: Material.ColorType
See:
此实例支持的材料类型。这会影响所需 VertexFormat 以及顶点和片段着色器的复杂性。
Default Value: MaterialAppearance.MaterialSupport.TEXTURED

readonly renderState : Object

渲染几何体时要使用的WebGL固定功能状态。

构造 MaterialAppearance 时,可以显式定义渲染状态。实例,或者通过 MaterialAppearance#translucent 进行隐式设置和 MaterialAppearance#closed

如果为 true ,则几何图形应显示为半透明。
Default Value: true
此外观实例与 VertexFormat 兼容。几何可以具有更多的顶点属性,但仍然兼容-潜在的性能成本-但不能少。
Default Value: MaterialAppearance.MaterialSupport.TEXTURED.vertexFormat

readonly vertexShaderSource : String

顶点着色器的GLSL源代码。

Methods

getFragmentShaderSource () String

Returns:
完整的GLSL片段着色器源。

getRenderState () Object

创建一个渲染状态。这不是最终的渲染状态实例;代替,它可以包含与渲染状态相同的渲染状态属性的子集在上下文中创建。
Returns:
渲染状态。

isTranslucent () Boolean

Returns:
真正 如果外观是半透明的。

Type Definitions

Cesium.MaterialAppearance.MaterialSupportType

Properties:
Name Type Description
vertexFormat VertexFormat
vertexShaderSource String
fragmentShaderSource String