MaterialAppearance

new Cesium.MaterialAppearance(options)

An appearance for arbitrary geometry (as opposed to EllipsoidSurfaceAppearance, for example) that supports shading with materials.
参数名称 类型 描述信息
options object 可选 Object with the following properties:
参数名称 类型 默认值 描述信息
flat boolean false 可选 When true, flat shading is used in the fragment shader, which means lighting is not taking into account.
faceForward boolean !options.closed 可选 When true, the fragment shader flips the surface normal as needed to ensure that the normal faces the viewer to avoid dark spots. This is useful when both sides of a geometry should be shaded like WallGeometry.
translucent boolean true 可选 When true, the geometry is expected to appear translucent so MaterialAppearance#renderState has alpha blending enabled.
closed boolean false 可选 When true, the geometry is expected to be closed so MaterialAppearance#renderState has backface culling enabled.
materialSupport MaterialAppearance.MaterialSupportType MaterialAppearance.MaterialSupport.TEXTURED 可选 The type of materials that will be supported.
material Material Material.ColorType 可选 The material used to determine the fragment color.
vertexShaderSource string 可选 Optional GLSL vertex shader source to override the default vertex shader.
fragmentShaderSource string 可选 Optional GLSL fragment shader source to override the default fragment shader.
renderState object 可选 Optional render state to override the default render state.
使用示例:
const 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:
参考:

Namespaces

MaterialSupport

成员(属性)

When true, the geometry is expected to be closed so MaterialAppearance#renderState has backface culling enabled. If the viewer enters the geometry, it will not be visible.
默认值: false

readonly faceForward : boolean

When true, the fragment shader flips the surface normal as needed to ensure that the normal faces the viewer to avoid dark spots. This is useful when both sides of a geometry should be shaded like WallGeometry.
默认值: true
When true, flat shading is used in the fragment shader, which means lighting is not taking into account.
默认值: false

readonly fragmentShaderSource : string

The GLSL source code for the fragment shader. The full fragment shader source is built procedurally taking into account MaterialAppearance#material, MaterialAppearance#flat, and MaterialAppearance#faceForward. Use MaterialAppearance#getFragmentShaderSource to get the full source.
The material used to determine the fragment color. Unlike other MaterialAppearance properties, this is not read-only, so an appearance's material can change on the fly.
默认值: Material.ColorType
参考:
The type of materials supported by this instance. This impacts the required VertexFormat and the complexity of the vertex and fragment shaders.
默认值: MaterialAppearance.MaterialSupport.TEXTURED

readonly renderState : object

The WebGL fixed-function state to use when rendering the geometry.

The render state can be explicitly defined when constructing a MaterialAppearance instance, or it is set implicitly via MaterialAppearance#translucent and MaterialAppearance#closed.

When true, the geometry is expected to appear translucent.
默认值: true
The VertexFormat that this appearance instance is compatible with. A geometry can have more vertex attributes and still be compatible - at a potential performance cost - but it can't have less.
默认值: MaterialAppearance.MaterialSupport.TEXTURED.vertexFormat

readonly vertexShaderSource : string

The GLSL source code for the vertex shader.

方法

getFragmentShaderSource()string

Procedurally creates the full GLSL fragment shader source. For MaterialAppearance, this is derived from MaterialAppearance#fragmentShaderSource, MaterialAppearance#material, MaterialAppearance#flat, and MaterialAppearance#faceForward.
返回值:
The full GLSL fragment shader source.

getRenderState()object

Creates a render state. This is not the final render state instance; instead, it can contain a subset of render state properties identical to the render state created in the context.
返回值:
The render state.

isTranslucent()boolean

Determines if the geometry is translucent based on MaterialAppearance#translucent and Material#isTranslucent.
返回值:
true if the appearance is translucent.

定义的类型

Cesium.MaterialAppearance.MaterialSupportType

属性:
属性名称 类型 描述信息
vertexFormat VertexFormat
vertexShaderSource string
fragmentShaderSource string