Scene
中的地形或3D Tiles上叠加的几何图形。
基本体将几何实例与描述完整阴影的
Appearance
组合在一起,包括
材料
和
RenderState
。大致而言,几何实例定义了结构和位置,外观定义了视觉特征。解耦的几何形状和外观使我们能够混合并匹配其中的大多数,并彼此独立地添加新的几何形状或外观。
要使用具有不同PerInstanceColors的GeometryInstances,需要支持WEBGL_depth_texture扩展或除PerInstanceColorAppearance之外的其他材料。
带纹理的GroundPrimitives是专为概念性图案设计的,并非旨在精确映射为地形制作纹理-对于该用例,请使用
SingleTileImageryProvider
。
为了正确渲染,此功能需要EXT_frag_depth WebGL扩展。对于不支持此扩展的硬件,将在某些视角呈现渲染伪像。
有效的几何图形是
CircleGeometry
,
CorridorGeometry
,< a href =' EllipseGeometry.html'>
EllipseGeometry
,
PolygonGeometry
和
RectangleGeometry
。
Name | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options
|
Object |
optional
Object with the following properties:
|
Example:
// Example 1: Create primitive with a single instance
var 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
var color = new Cesium.ColorGeometryInstanceAttribute(0.0, 1.0, 1.0, 0.5); // Both instances must have the same color.
var 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
}
});
var 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
外观
用于为该原语着色。每个几何实例以相同的外观着色。一些外观,例如
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
为
undefined
构造基元时为
true
。
渲染图元后更改此属性无效。
-
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:
真正
如果支持GroundPrimitives;否则,返回
假
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:
var attributes = primitive.getGeometryInstanceAttributes('an id');
attributes.color = Cesium.ColorGeometryInstanceAttribute.toValue(Cesium.Color.AQUA);
attributes.show = Cesium.ShowGeometryInstanceAttribute.toValue(true);
如果该对象被破坏,则不应使用。调用除
isDestroyed
将导致
DeveloperError
异常。
Returns:
真正
该物体是否被破坏;除此以外,
假
。
Throws:
-
DeveloperError :对于同步的GroundPrimitive,必须调用GroundPrimitive.initializeTerrainHeights()并等待返回的Promise解析。
-
DeveloperError :所有实例几何必须具有相同的primaryType。
-
DeveloperError :外观和材料具有相同名称的制服。