new Cesium.PerInstanceColorAppearance(options)
带有颜色属性的
GeometryInstance
实例的外观。
这允许使用相同的Primitive
绘制几个几何实例,每个实例使用不同的颜色,如下面的第二个示例所示。
Name | Type | Description | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
optional
具有下列属性的对象:
|
示例:
// 一条白色的线段
var 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
})
});
// 一个图元中有两个矩形,并且具有不同的颜色。
var 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)
}
});
var 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)
}
});
var rectanglePrimitive = new Cesium.Primitive({
geometryInstances : [instance, anotherInstance],
appearance : new Cesium.PerInstanceColorAppearance()
});
成员变量
当
PerInstanceColorAppearance#flat
为 true
时,
所有PerInstanceColorAppearance
实例都兼容的VertexFormat
。这只需要一个position
属性。
当
true
时,几何图形将被关闭,因此PerInstanceColorAppearance#renderState
启用了后表面剔除。
-
Default Value:
false
当
true
时,片段着色器会根据需要翻转表面法线,
以确保法线面对观察者,避免出现黑斑。当几何图形的两侧都应像WallGeometry
一样着色时,这很有用。
-
Default Value:
true
当
true
时,在片段着色器中使用了平面着色,这意味着没有考虑到光照。
-
Default Value:
false
片段着色器的GLSL源代码。
material : Material
此属性是
Appearance
接口的一部分,但PerInstanceColorAppearance
不使用此属性,因为使用的是完全自定义的片段着色器。
-
Default Value:
undefined
渲染几何图形时的WEBGL状态。
渲染状态可以在构造一个PerInstanceColorAppearance
例时显式定义,
也可以通过PerInstanceColorAppearance#translucent
和PerInstanceColorAppearance#closed
隐式设置。
translucent : Boolean
当
true
时,几何图形应该是半透明的,因此PerInstanceColorAppearance#renderState
启用了alpha混合。
-
Default Value:
true
与此外观实例兼容的
VertexFormat
。
几何图形可以有更多的顶点属性,而且仍然是兼容的——以潜在的性能成本为代价——但它不能有更少的顶点属性。
顶点着色器的GLSL源代码。
内置方法
创建完整的GLSL片段着色器。 对于
PerInstanceColorAppearance
,这是从PerInstanceColorAppearance#fragmentShaderSource
、PerInstanceColorAppearance#flat
和PerInstanceColorAppearance#faceForward
派生出来的。
返回值:
完整的GLSL片段着色器。
创建渲染状态。
返回值:
渲染状态。
确定几何图形是否是半透明
PerInstanceColorAppearance#translucent
.
返回值:
如果是半透明,返回true。