An appearance for geometry on the surface of the ellipsoid like
PolygonGeometry
and RectangleGeometry, which supports all materials like MaterialAppearance
with MaterialAppearance.MaterialSupport.ALL. However, this appearance requires
fewer vertex attributes since the fragment shader can procedurally compute normal,
tangent, and bitangent.
| Name | Type | Description | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
optional
Object with the following properties:
|
Example:
var primitive = new Cesium.Primitive({
geometryInstances : new Cesium.GeometryInstance({
geometry : new Cesium.PolygonGeometry({
vertexFormat : Cesium.EllipsoidSurfaceAppearance.VERTEX_FORMAT,
// ...
})
}),
appearance : new Cesium.EllipsoidSurfaceAppearance({
material : Cesium.Material.fromType('Stripe')
})
});
See:
Members
static constant Cesium.EllipsoidSurfaceAppearance.VERTEX_FORMAT : VertexFormat
The
VertexFormat that all EllipsoidSurfaceAppearance instances
are compatible with, which requires only position and st
attributes. Other attributes are procedurally computed in the fragment shader.
When
true, the geometry is expected to be on the ellipsoid's
surface - not at a constant height above it - so EllipsoidSurfaceAppearance#renderState
has backface culling enabled.
-
Default Value:
false
When
true, the geometry is expected to be closed so
EllipsoidSurfaceAppearance#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
EllipsoidSurfaceAppearance#material,
EllipsoidSurfaceAppearance#flat, and EllipsoidSurfaceAppearance#faceForward.
Use EllipsoidSurfaceAppearance#getFragmentShaderSource to get the full source.
material : Material
The material used to determine the fragment color. Unlike other
EllipsoidSurfaceAppearance
properties, this is not read-only, so an appearance's material can change on the fly.
-
Default Value:
Material.ColorType
See:
The WebGL fixed-function state to use when rendering the geometry.
The render state can be explicitly defined when constructing a EllipsoidSurfaceAppearance
instance, or it is set implicitly via EllipsoidSurfaceAppearance#translucent
and EllipsoidSurfaceAppearance#aboveGround.
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:
EllipsoidSurfaceAppearance.VERTEX_FORMAT
The GLSL source code for the vertex shader.
Methods
Procedurally creates the full GLSL fragment shader source. For
EllipsoidSurfaceAppearance,
this is derived from EllipsoidSurfaceAppearance#fragmentShaderSource, EllipsoidSurfaceAppearance#flat,
and EllipsoidSurfaceAppearance#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
EllipsoidSurfaceAppearance#translucent and Material#isTranslucent.
Returns:
true if the appearance is translucent.
