Scene
中的封闭几何体。基本体将几何体实例与描述完整着色的Appearance
结合起来,包括Material
和RenderState
。大致上,几何体实例定义结构和位置,外观定义视觉特征。分离几何体和外观允许我们混合和匹配大多数几何体和外观,并独立地添加新的几何体或外观。当直接使用ClassificationPrimitive时,此时只支持在所有实例中使用相同颜色的PerInstanceColorAppearance
。对地形或3D瓦片进行分类时,要获得充分的Appearance
支持,请使用GroundPrimitive
代替。
要正确渲染,此功能需要ext{frag{depth webgl扩展。对于不支持此扩展的硬件,将存在一些视角的渲染工件。
有效几何图形为BoxGeometry
、CylinderGeometry
、EllipsoidGeometry
、PolylineVolumeGeometry
和SphereGeometry
。
椭球表面后的几何图形,例如CircleGeometry
、CorridorGeometry
、EllipseGeometry
、PolygonGeometry
和RectangleGeometry
,如果是拉伸体积,也有效;否则,将不会渲染它们。
Parameters:
(Object)
Name | Description |
---|---|
options.geometryInstances
(Array | GeometryInstance)
|
要渲染的几何体实例。这可以是单个实例,也可以是长度为1的数组。 |
options.appearance
Appearance
|
用于呈现原语的外观。当几何实例具有颜色属性时,默认为PerInstanceColorAppearance。 |
options.show
Boolean
default true
|
确定是否显示此基元。 |
options.vertexCacheOptimize
Boolean
default false
|
当true 时,几何体顶点将针对顶点前和顶点后明暗器缓存进行优化。
|
options.interleave
Boolean
default false
|
当true 时,几何顶点属性交错,这可以稍微提高渲染性能,但增加加载时间。
|
options.compressVertices
Boolean
default true
|
当true 时,几何体顶点被压缩,这将节省内存。
|
options.releaseGeometryInstances
Boolean
default true
|
当true 时,原语不保留对输入geometryInstances 的引用以保存内存。
|
options.allowPicking
Boolean
default true
|
当true 时,每个几何体实例只能使用Scene#pick 进行选择。当false 时,保存GPU内存。
|
options.asynchronous
Boolean
default true
|
确定在准备就绪之前是异步创建基元还是阻止创建基元。如果为false,则必须首先调用initiaterrainheights()。 |
options.classificationType
ClassificationType
default ClassificationType.BOTH
|
确定地形、三维瓦片还是两者都要分类。 |
options.debugShowBoundingVolume
Boolean
default false
|
仅用于调试。确定是否显示此基元的命令的边界球。 |
options.debugShowShadowVolume
Boolean
default false
|
仅用于调试。确定是否绘制基本体中每个几何体的阴影体积。在释放几何图形或选项之前,要创建的卷在创建时必须为true 。ReleaseGeometryInstance必须为false 。
|
Members
(readonly) allowPicking : Boolean
-
Default Value:
true
(readonly) asynchronous : Boolean
-
Default Value:
true
classificationType : ClassificationType
-
Default Value:
ClassificationType.BOTH
(readonly) compressVertices : Boolean
true
时,几何体顶点被压缩,这将节省内存。
-
Default Value:
true
debugShowBoundingVolume : Boolean
为基本体中的每个draw命令绘制边界球体。
-
Default Value:
false
debugShowShadowVolume : Boolean
为基本体中的每个几何体绘制阴影体积。
-
Default Value:
false
(readonly) geometryInstances : (Array|GeometryInstance)
options.releaseGeometryInstances
是true
,则可能是undefined
。在呈现基元后更改此属性没有效果。
由于使用的渲染技术,所有几何体实例必须是相同的颜色。如果存在颜色不同的实例,则在第一次尝试呈现时将抛出DeveloperError
。
-
Default Value:
undefined
(readonly) interleave : Boolean
-
Default Value:
false
(readonly) ready : Boolean
ClassificationPrimitive#update
时将呈现原语。
(readonly) readyPromise : Promise.<ClassificationPrimitive>
(readonly) releaseGeometryInstances : Boolean
true
时,原语不保留对输入geometryInstances
的引用以保存内存。
-
Default Value:
true
show : Boolean
-
Default Value:
true
(readonly) vertexCacheOptimize : Boolean
true
时,几何体顶点将针对顶点前和顶点后明暗器缓存进行优化。
-
Default Value:
true
Methods
(static) isSupported(scene) → {Boolean}Parameters:
一旦对象被破坏,就不应使用它;调用除isDestroyed
以外的任何函数都将导致DeveloperError
异常。因此,将返回值(undefined
)赋给对象,如示例中所述。
Throws
-
DeveloperError : 此对象已被销毁,即调用destroy()。
GeometryInstance
的每个实例可修改属性。
Parameters:
Example
var attributes = primitive.getGeometryInstanceAttributes('an id');
attributes.color = bmgl.ColorGeometryInstanceAttribute.toValue(bmgl.Color.AQUA);
attributes.show = bmgl.ShowGeometryInstanceAttribute.toValue(true);
Throws
-
DeveloperError : 必须在调用GetGeometryInstanceAttributes之前调用Update。
如果此对象被破坏,则不应使用它;调用除isDestroyed
以外的任何函数都将导致DeveloperError
异常。
Throws
-
DeveloperError : 所有实例几何必须具有相同的PrimitiveType。
-
DeveloperError : 外观和材料有一个统一的名称。
-
DeveloperError : 并非所有几何体实例都具有相同的颜色属性。