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:
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:
See:
Namespaces
Members
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.
-
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 like WallGeometry
.
-
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
, and MaterialAppearance#faceForward
.
Use MaterialAppearance#getFragmentShaderSource
to get the full source.
material : Material
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.
-
Default Value:
Material.ColorType
See:
readonly materialSupport : MaterialAppearance.MaterialSupportType
The type of materials supported by this instance. This impacts the required
VertexFormat
and 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 MaterialAppearance
instance, or it is set implicitly via MaterialAppearance#translucent
and MaterialAppearance#closed
.
When
true
, the geometry is expected to appear translucent.
-
Default Value:
true
readonly vertexFormat : VertexFormat
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.
-
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 from MaterialAppearance#fragmentShaderSource
, MaterialAppearance#material
,
MaterialAppearance#flat
, and MaterialAppearance#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#translucent
and Material#isTranslucent
.
Returns:
true
if the appearance is translucent.
Type Definitions
Properties:
Name | Type | Description |
---|---|---|
vertexFormat |
VertexFormat | |
vertexShaderSource |
String | |
fragmentShaderSource |
String |