An appearance for arbitrary geometry (as opposed to
EllipsoidSurfaceAppearance, for example)
that supports shading with materials.
| Name | Type | Description | ||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
optional
Object with the following properties:
|
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:
Members
-
Determines the type of
Materialthat is supported by aMaterialAppearanceinstance. This is a trade-off between flexibility (a wide array of materials) and memory/performance (required vertex format and GLSL shader complexity. -
When
true, the geometry is expected to be closed soMaterialAppearance#renderStatehas backface culling enabled. If the viewer enters the geometry, it will not be visible.-
Default Value:
false -
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 likeWallGeometry.-
Default Value:
true -
When
true, flat shading is used in the fragment shader, which means lighting is not taking into account.-
Default Value:
false -
The GLSL source code for the fragment shader. The full fragment shader source is built procedurally taking into account
MaterialAppearance#material,MaterialAppearance#flat, andMaterialAppearance#faceForward. UseMaterialAppearance#getFragmentShaderSourceto get the full source. -
material : Material
-
The material used to determine the fragment color. Unlike other
MaterialAppearanceproperties, this is not read-only, so an appearance's material can change on the fly.-
Default Value:
Material.ColorTypeSee:
-
readonlymaterialSupport : MaterialAppearance.MaterialSupport
-
The type of materials supported by this instance. This impacts the required
VertexFormatand the complexity of the vertex and fragment shaders.-
Default Value:
MaterialAppearance.MaterialSupport.TEXTURED -
The WebGL fixed-function state to use when rendering the geometry.
The render state can be explicitly defined when constructing a
MaterialAppearanceinstance, or it is set implicitly viaMaterialAppearance#translucentandMaterialAppearance#closed. -
When
true, the geometry is expected to appear translucent.-
Default Value:
true -
readonlyvertexFormat : VertexFormat
-
The
VertexFormatthat 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.-
Default Value:
MaterialAppearance.MaterialSupport.TEXTURED.vertexFormat -
The GLSL source code for the vertex shader.
Methods
-
Procedurally creates the full GLSL fragment shader source. For
MaterialAppearance, this is derived fromMaterialAppearance#fragmentShaderSource,MaterialAppearance#material,MaterialAppearance#flat, andMaterialAppearance#faceForward.Returns:
The full GLSL fragment shader source. -
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.
Returns:
The render state. -
Determines if the geometry is translucent based on
MaterialAppearance#translucentandMaterial#isTranslucent.Returns:
trueif the appearance is translucent.
