Scene
中的 3D 瓦片上的几何图形。
图元将几何实例与描述完整着色的
Appearance
组合在一起,包括
Material
和
RenderState
。粗略地说,几何实例定义了结构和位置,外观定义了视觉特征。解耦几何和外观允许我们混合和匹配它们中的大多数,并相互独立地添加新的几何或外观。
需要对 WEBGL_depth_texture 扩展的支持才能使用具有不同 PerInstanceColors 或除 PerInstanceColorAppearance 之外的材质的 GeometryInstances。
Textured GroundPrimitives 是为概念图案设计的,并不意味着将纹理精确映射到地形 - 对于该用例,请使用
SingleTileImageryProvider
。
为了正确渲染,此功能需要 EXT_frag_depth WebGL 扩展。对于不支持此扩展的硬件,某些视角会出现渲染伪影。
有效的几何图形是
CircleGeometry
、
CorridorGeometry
、
EllipseGeometry
、
PolygonGeometry
和
RectangleGeometry
。
Name | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options
|
Object |
具有以下属性的
可选
对象:
|
Example:
// Example 1: Create primitive with a single instance
const rectangleInstance = new Cesium.GeometryInstance({
geometry : new Cesium.RectangleGeometry({
rectangle : Cesium.Rectangle.fromDegrees(-140.0, 30.0, -100.0, 40.0)
}),
id : 'rectangle',
attributes : {
color : new Cesium.ColorGeometryInstanceAttribute(0.0, 1.0, 1.0, 0.5)
}
});
scene.primitives.add(new Cesium.GroundPrimitive({
geometryInstances : rectangleInstance
}));
// Example 2: Batch instances
const color = new Cesium.ColorGeometryInstanceAttribute(0.0, 1.0, 1.0, 0.5); // Both instances must have the same color.
const rectangleInstance = new Cesium.GeometryInstance({
geometry : new Cesium.RectangleGeometry({
rectangle : Cesium.Rectangle.fromDegrees(-140.0, 30.0, -100.0, 40.0)
}),
id : 'rectangle',
attributes : {
color : color
}
});
const ellipseInstance = new Cesium.GeometryInstance({
geometry : new Cesium.EllipseGeometry({
center : Cesium.Cartesian3.fromDegrees(-105.0, 40.0),
semiMinorAxis : 300000.0,
semiMajorAxis : 400000.0
}),
id : 'ellipse',
attributes : {
color : color
}
});
scene.primitives.add(new Cesium.GroundPrimitive({
geometryInstances : [rectangleInstance, ellipseInstance]
}));
See:
Members
-
Default Value:
true
appearance : Appearance
Appearance
。每个几何实例都以相同的外观着色。某些外观,例如
PerInstanceColorAppearance
允许为每个实例赋予唯一的属性。
-
Default Value:
undefined
-
Default Value:
true
classificationType : ClassificationType
-
Default Value:
ClassificationType.BOTH
true
时,几何顶点被压缩,这将节省内存。
-
Default Value:
true
为基元中的每个绘制命令绘制边界球体。
-
Default Value:
false
为图元中的每个几何体绘制阴影体积。
-
Default Value:
false
readonly geometryInstances : Array| GeometryInstance
options.releaseGeometryInstances
为
true
,则这可能是
undefined
的。
在渲染图元后更改此属性无效。
-
Default Value:
undefined
-
Default Value:
false
GroundPrimitive#update
时将呈现图元。
readonly readyPromise : Promise.< GroundPrimitive >
true
时,图元不会保留对输入
geometryInstances
的引用以节省内存。
-
Default Value:
true
-
Default Value:
true
true
时,几何顶点针对顶点着色器前后缓存进行优化。
-
Default Value:
true
Methods
Returns:
Name | Type | Description |
---|---|---|
scene
|
Scene | 现场。 |
Returns:
true
;否则,返回
false
Name | Type | Description |
---|---|---|
scene
|
Scene | 当前场景。 |
Returns:
一旦一个对象被销毁,它就不应该被使用;调用
isDestroyed
以外的任何函数都将导致
DeveloperError
异常。因此,如示例中所做的那样,将返回值 (
undefined
) 分配给对象。
Throws:
-
DeveloperError : 该对象被销毁,即调用了destroy()。
Example:
e = e && e.destroy();
See:
GeometryInstance
的可修改的每实例属性。
Name | Type | Description |
---|---|---|
id
|
* |
GeometryInstance
的 ID。
|
Returns:
Throws:
-
DeveloperError :必须在调用 getGeometryInstanceAttributes 之前调用 update。
Example:
const attributes = primitive.getGeometryInstanceAttributes('an id');
attributes.color = Cesium.ColorGeometryInstanceAttribute.toValue(Cesium.Color.AQUA);
attributes.show = Cesium.ShowGeometryInstanceAttribute.toValue(true);
如果该对象被销毁,则不应使用;调用
isDestroyed
以外的任何函数都会导致
DeveloperError
异常。
Returns:
true
;否则,
false
。
Throws:
-
DeveloperError : 对于同步 GroundPrimitive,您必须调用 GroundPrimitive.initializeTerrainHeights() 并等待返回的 Promise 解决。
-
DeveloperError :所有实例几何必须具有相同的primitiveType。
-
DeveloperError : 外观和材质有同名的制服。