new EllipsoidSurfaceAppearance()
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
,
binormal
, and tangent
.
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.aboveGround
|
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 EllipsoidSurfaceAppearance#renderState has alpha blending enabled. |
options.aboveGround |
Boolean |
false
|
optional
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. |
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.PolygonGeometry({
vertexFormat : Cesium.EllipsoidSurfaceAppearance.VERTEX_FORMAT,
// ...
})
}),
appearance : new Cesium.EllipsoidSurfaceAppearance({
material : Cesium.Material.fromType('Stripe')
})
});
See:
Members
-
staticconstantEllipsoidSurfaceAppearance.VERTEX_FORMAT :VertexFormat
-
The
VertexFormat
that allEllipsoidSurfaceAppearance
instances are compatible with, which requires onlyposition
andst
attributes. Other attributes are procedurally computed in the fragment shader. -
readonlyaboveGround :Boolean
-
When
true
, the geometry is expected to be on the ellipsoid's surface - not at a constant height above it - soEllipsoidSurfaceAppearance#renderState
has backface culling enabled.-
Default Value:
false
-
readonlyclosed :Boolean
-
When
true
, the geometry is expected to be closed soEllipsoidSurfaceAppearance#renderState
has 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
EllipsoidSurfaceAppearance#material
,EllipsoidSurfaceAppearance#flat
, andEllipsoidSurfaceAppearance#faceForward
. UseEllipsoidSurfaceAppearance#getFragmentShaderSource
to get the full source. -
getFragmentShaderSource
-
Procedurally creates the full GLSL fragment shader source. For
EllipsoidSurfaceAppearance
, this is derived fromEllipsoidSurfaceAppearance#fragmentShaderSource
,EllipsoidSurfaceAppearance#flat
, andEllipsoidSurfaceAppearance#faceForward
. -
getRenderState
-
Creates a render state. This is not the final
RenderState
instance; instead, it can contain a subset of render state properties identical torenderState
passed toContext#createRenderState
. -
isTranslucent
-
Determines if the geometry is translucent based on
EllipsoidSurfaceAppearance#translucent
andMaterial#isTranslucent
. -
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:
-
readonlyrenderState :Object
-
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 viaEllipsoidSurfaceAppearance#translucent
andEllipsoidSurfaceAppearance#aboveGround
. -
translucent :Boolean
-
When
true
, the geometry is expected to appear translucent.-
Default Value:
true
-
readonlyvertexFormat :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
-
readonlyvertexShaderSource :String
-
The GLSL source code for the vertex shader.