new MaterialAppearance()
An appearance for arbitrary geometry (as opposed to
EllipsoidSurfaceAppearance, for example)
that supports shading with materials.
| Name | Type | Default | Description |
|---|---|---|---|
options.flat |
Boolean |
false
|
optional
When true, flat shading is used in the fragment shader, which means lighting is not taking into account. |
options.faceForward |
Boolean |
!options.closed
|
optional
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. |
options.translucent |
Boolean |
true
|
optional
When true, the geometry is expected to appear translucent so MaterialAppearance#renderState has alpha blending enabled. |
options.closed |
Boolean |
false
|
optional
When true, the geometry is expected to be closed so MaterialAppearance#renderState has backface culling enabled. |
options.materialSupport |
MaterialAppearance.MaterialSupport |
MaterialAppearance.MaterialSupport.TEXTURED
|
optional The type of materials that will be supported. |
options.material |
Material |
Material.ColorType
|
optional The material used to determine the fragment color. |
options.vertexShaderSource |
String | optional Optional GLSL vertex shader source to override the default vertex shader. | |
options.fragmentShaderSource |
String | optional Optional GLSL fragment shader source to override the default fragment shader. | |
options.renderState |
RenderState | optional Optional render state to override the default render state. |
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
})
});
See:
Members
-
staticMaterialAppearance.MaterialSupport
-
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. -
readonlyclosed :Boolean
-
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 -
readonlyfaceForward :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 likeWallGeometry.-
Default Value:
true -
readonlyflat :Boolean
-
When
true, flat shading is used in the fragment shader, which means lighting is not taking into account.-
Default Value:
false -
readonlyfragmentShaderSource :String
-
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. -
getFragmentShaderSource
-
Procedurally creates the full GLSL fragment shader source. For
MaterialAppearance, this is derived fromMaterialAppearance#fragmentShaderSource,MaterialAppearance#material,MaterialAppearance#flat, andMaterialAppearance#faceForward. -
getRenderState
-
Creates a render state. This is not the final
RenderStateinstance; instead, it can contain a subset of render state properties identical torenderStatepassed toContext#createRenderState. -
isTranslucent
-
Determines if the geometry is translucent based on
MaterialAppearance#translucentandMaterial#isTranslucent. -
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:
@link MaterialAppearance.MaterialSupport.TEXTURED} -
readonlyrenderState :Object
-
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. -
translucent :Boolean
-
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.VERTEX_FORMAT -
readonlyvertexShaderSource :String
-
The GLSL source code for the vertex shader.
