外观为 An appearance for
GeometryInstance 具有颜色属性的实例。这允许使用相同的颜色绘制多个几何实例,每个实例具有不同的颜色 instances with color attributes. This allows several geometry instances, each with a different color, to be drawn with the same Primitive 如下面的第二个示例所示。 as shown in the second example below.
| 名称 Name | 类型 Type | 说明 Description | ||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
object |
可选 optional
具有以下属性的对象: Object with the following properties:
|
示例: Example:
// A solid white line segment
const primitive = new Cesium.Primitive({
geometryInstances : new Cesium.GeometryInstance({
geometry : new Cesium.SimplePolylineGeometry({
positions : Cesium.Cartesian3.fromDegreesArray([
0.0, 0.0,
5.0, 0.0
])
}),
attributes : {
color : Cesium.ColorGeometryInstanceAttribute.fromColor(new Cesium.Color(1.0, 1.0, 1.0, 1.0))
}
}),
appearance : new Cesium.PerInstanceColorAppearance({
flat : true,
translucent : false
})
});
// Two rectangles in a primitive, each with a different color
const instance = new Cesium.GeometryInstance({
geometry : new Cesium.RectangleGeometry({
rectangle : Cesium.Rectangle.fromDegrees(0.0, 20.0, 10.0, 30.0)
}),
attributes : {
color : new Cesium.ColorGeometryInstanceAttribute(1.0, 0.0, 0.0, 0.5)
}
});
const anotherInstance = new Cesium.GeometryInstance({
geometry : new Cesium.RectangleGeometry({
rectangle : Cesium.Rectangle.fromDegrees(0.0, 40.0, 10.0, 50.0)
}),
attributes : {
color : new Cesium.ColorGeometryInstanceAttribute(0.0, 0.0, 1.0, 0.5)
}
});
const rectanglePrimitive = new Cesium.Primitive({
geometryInstances : [instance, anotherInstance],
appearance : new Cesium.PerInstanceColorAppearance()
});
成员 Members
static constant Cesium.PerInstanceColorAppearance.FLAT_VERTEX_FORMAT : VertexFormat
The
VertexFormat 这一切 that all PerInstanceColorAppearance 实例与when兼容 instances are compatible with when PerInstanceColorAppearance#flat is true。这仅需要一个 . This requires only a position attribute.
static constant Cesium.PerInstanceColorAppearance.VERTEX_FORMAT : VertexFormat
The
VertexFormat 这一切 that all PerInstanceColorAppearance 实例兼容。这仅需要 instances are compatible with. This requires only position and normal
attributes.
When
true,几何形状预计将是封闭的,因此 , the geometry is expected to be closed so
PerInstanceColorAppearance#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
片段着色器的 GLSL 源代码。 The GLSL source code for the fragment shader.
此属性是 This property is part of the
Appearance 接口,但不被使用 interface, but is not used by PerInstanceColorAppearance 因为使用了完全自定义的片段着色器。 since a fully custom fragment shader is used.
-
默认值: Default Value:
undefined
渲染几何体时使用的 WebGL 固定功能状态。 The WebGL fixed-function state to use when rendering the geometry.
构建时可以显式定义渲染状态 The render state can be explicitly defined when constructing a PerInstanceColorAppearance
实例,或者通过隐式设置 instance, or it is set implicitly via PerInstanceColorAppearance#translucent
and PerInstanceColorAppearance#closed.
When
true,几何体预计会呈现半透明,因此 , the geometry is expected to appear translucent so
PerInstanceColorAppearance#renderState 启用了 alpha 混合。 has alpha blending enabled.
-
默认值: 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.
顶点着色器的 GLSL 源代码。 The GLSL source code for the vertex shader.
方法 Methods
按程序创建完整的 GLSL 片段着色器源。对于 Procedurally creates the full GLSL fragment shader source. For
PerInstanceColorAppearance,这是从 , this is derived from PerInstanceColorAppearance#fragmentShaderSource, PerInstanceColorAppearance#flat, 和 , and PerInstanceColorAppearance#faceForward.
返回: Returns:
完整的 GLSL 片段着色器源代码。 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
PerInstanceColorAppearance#translucent.
返回: Returns:
true 如果外观是半透明的。 if the appearance is translucent.
