Appearance
KBE3D / KBCore / Cesium / EllipsoidSurfaceAppearance
类: 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 <code>normal</code>, <code>tangent</code>, and <code>bitangent</code>.
示例
ts
const 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')
})
});参数
Object with the following properties:
参数
When <code>true</code>, flat shading is used in the fragment shader, which means lighting is not taking into account.
参数
When <code>true</code>, 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.
参数
When <code>true</code>, the geometry is expected to appear translucent so EllipsoidSurfaceAppearance#renderState has alpha blending enabled.
参数
When <code>true</code>, 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.
参数
The material used to determine the fragment color.
参数
Optional GLSL vertex shader source to override the default vertex shader.
参数
Optional GLSL fragment shader source to override the default fragment shader.
参数
Optional render state to override the default render state.
属性
VERTEX_FORMAT
readonlystaticVERTEX_FORMAT:VertexFormat
The VertexFormat that all EllipsoidSurfaceAppearance instances are compatible with, which requires only <code>position</code> and <code>st</code> attributes. Other attributes are procedurally computed in the fragment shader.
material
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.
translucent
translucent:
boolean
When <code>true</code>, the geometry is expected to appear translucent.
vertexShaderSource
readonlyvertexShaderSource:string
The GLSL source code for the vertex shader.
fragmentShaderSource
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, and EllipsoidSurfaceAppearance#faceForward. Use EllipsoidSurfaceAppearance#getFragmentShaderSource to get the full source.
renderState
readonlyrenderState:any
The WebGL fixed-function state to use when rendering the geometry. <p> The render state can be explicitly defined when constructing a EllipsoidSurfaceAppearance instance, or it is set implicitly via EllipsoidSurfaceAppearance#translucent and EllipsoidSurfaceAppearance#aboveGround. </p>
closed
readonlyclosed:boolean
When <code>true</code>, 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.
vertexFormat
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.
flat
readonlyflat:boolean
When <code>true</code>, flat shading is used in the fragment shader, which means lighting is not taking into account.
faceForward
readonlyfaceForward:boolean
When <code>true</code>, 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.
aboveGround
readonlyaboveGround:boolean
When <code>true</code>, 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.
方法
getFragmentShaderSource()
getFragmentShaderSource():
string
Procedurally creates the full GLSL fragment shader source. For EllipsoidSurfaceAppearance, this is derived from EllipsoidSurfaceAppearance#fragmentShaderSource, EllipsoidSurfaceAppearance#flat, and EllipsoidSurfaceAppearance#faceForward.
返回
string
The full GLSL fragment shader source.
isTranslucent()
isTranslucent():
boolean
Determines if the geometry is translucent based on EllipsoidSurfaceAppearance#translucent and Material#isTranslucent.
返回
boolean
true if the appearance is translucent.
getRenderState()
getRenderState():
any
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.
返回
any
The render state.
构造函数
构造函数
new EllipsoidSurfaceAppearance(
options?: {flat?:boolean;faceForward?:boolean;translucent?:boolean;aboveGround?:boolean;material?:Material;vertexShaderSource?:string;fragmentShaderSource?:string;renderState?:any; }):EllipsoidSurfaceAppearance
参数
options?
flat?
boolean
faceForward?
boolean
translucent?
boolean
aboveGround?
boolean
material?
vertexShaderSource?
string
fragmentShaderSource?
string
renderState?
any
返回
EllipsoidSurfaceAppearance
