ClassificationPrimitive

new Cesium.ClassificationPrimitive ( options )

分类基元表示要突出显示的 Scene 中包含几何体的体积。

图元将几何实例与描述完整着色的 Appearance 组合在一起,包括 Material RenderState 。粗略地说,几何实例定义了结构和位置,外观定义了视觉特征。解耦几何和外观允许我们混合和匹配它们中的大多数,并相互独立地添加新的几何或外观。直接使用 ClassificationPrimitive 时,此时仅支持跨所有实例具有相同颜色的 PerInstanceColorAppearance 。要在对地形或 3D 瓷砖进行分类时获得完整的 Appearance 支持,请改用 GroundPrimitive

为了正确渲染,此功能需要 EXT_frag_depth WebGL 扩展。对于不支持此扩展的硬件,某些视角会出现渲染伪影。

有效的几何图形是 BoxGeometry CylinderGeometry EllipsoidGeometry PolylineVolumeGeometry SphereGeometry

遵循椭圆体表面的几何体,例如 CircleGeometry CorridorGeometry EllipseGeometry PolygonGeometry RectangleGeometry ,如果它们是拉伸体积,它们也是有效的;否则,它们将不会被渲染。

Name Type Description
options Object 具有以下属性的 可选 对象:
姓名 类型 默认 描述
geometryInstances 数组 | 几何实例 可选 要渲染的几何实例。这可以是单个实例,也可以是长度为 1 的数组。
appearance 外貌 可选 用于渲染图元的外观。当 GeometryInstances 具有颜色属性时,默认为 PerInstanceColorAppearance。
show 布尔值 true 可选 确定是否显示此原语。
vertexCacheOptimize 布尔值 false 可选 true 时,几何顶点针对顶点着色器前后缓存进行优化。
interleave 布尔值 false 可选 true 时,几何顶点属性是交错的,这可以稍微提高渲染性能但增加加载时间。
compressVertices 布尔值 true 可选 true 时,几何顶点被压缩,这将节省内存。
releaseGeometryInstances 布尔值 true 可选 true 时,基元不保留对输入 geometryInstances 的引用以节省内存。
allowPicking 布尔值 true 可选 true 时,每个几何实例只能通过 Scene#pick 来选择。当为 false 时,GPU 内存被保存。
asynchronous 布尔值 true 可选 确定原语是异步创建还是阻塞直到准备好。如果为 false,则必须首先调用 initializeTerrainHeights()。
classificationType 分类类型 ClassificationType.BOTH 可选 确定是对地形、3D 瓷砖还是两者都进行分类。
debugShowBoundingVolume 布尔值 false 可选 仅用于调试。确定是否显示此原语的命令的边界球。
debugShowShadowVolume 布尔值 false 可选 仅用于调试。确定是否绘制图元中每个几何体的阴影体积。在创建几何体之前要创建的卷必须为 true 或 options.releaseGeometryInstance 必须为 false
See:

Members

readonly allowPicking : Boolean

当为 true 时,每个几何实例只能通过 Scene#pick 进行拾取。当为 false 时,GPU 内存被保存。
Default Value: true

readonly asynchronous : Boolean

确定是否将在 Web Worker 上创建和批处理几何实例。
Default Value: true
确定是对地形、3D 瓷砖还是两者都进行分类。
Default Value: ClassificationType.BOTH

readonly compressVertices : Boolean

当为 true 时,几何顶点被压缩,这将节省内存。
Default Value: true

debugShowBoundingVolume : Boolean

该属性仅用于调试;它不是用于生产用途,也不是优化的。

为基元中的每个绘制命令绘制边界球体。

Default Value: false

debugShowShadowVolume : Boolean

该属性仅用于调试;它不是用于生产用途,也不是优化的。

为图元中的每个几何体绘制阴影体积。

Default Value: false
使用此图元渲染的几何实例。如果在构造图元时 options.releaseGeometryInstances true ,则这可能是 undefined 的。

在渲染图元后更改此属性无效。

由于使用的渲染技术,所有几何实例必须是相同的颜色。如果存在具有不同颜色的实例,则在第一次尝试渲染时将抛出 DeveloperError

Default Value: undefined

readonly interleave : Boolean

确定几何顶点属性是否交错,这可以稍微提高渲染性能。
Default Value: false
确定图元是否完整并准备好渲染。如果此属性为真,则将在下次调用 ClassificationPrimitive#update 时呈现基元。
获取当原语准备好渲染时解决的承诺。

readonly releaseGeometryInstances : Boolean

当为 true 时,图元不会保留对输入 geometryInstances 的引用以节省内存。
Default Value: true
确定是否将显示图元。这会影响图元中的所有几何实例。
Default Value: true

readonly vertexCacheOptimize : Boolean

当为 true 时,几何顶点针对顶点着色器前后缓存进行优化。
Default Value: true

Methods

static Cesium.ClassificationPrimitive.isSupported (scene) Boolean

确定是否支持 ClassificationPrimitive 渲染。
Name Type Description
scene Scene 现场。
Returns:
如果支持 ClassificationPrimitive,则为 true ;否则,返回 false
销毁此对象持有的 WebGL 资源。销毁一个对象允许确定性地释放 WebGL 资源,而不是依赖垃圾收集器来销毁这个对象。

一旦一个对象被销毁,它就不应该被使用;调用 isDestroyed 以外的任何函数都将导致 DeveloperError 异常。因此,如示例中所做的那样,将返回值 ( undefined ) 分配给对象。

Throws:
Example:
e = e && e.destroy();
See:

getGeometryInstanceAttributes (id) Object

返回 GeometryInstance 的可修改的每实例属性。
Name Type Description
id * GeometryInstance 的 ID。
Returns:
属性格式的类型化数组,如果没有具有 id 的实例,则为未定义。
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);
如果此对象被销毁,则返回 true;否则为假。

如果这个对象被破坏了,它就不应该被使用;调用 isDestroyed 以外的任何函数都将导致 DeveloperError 异常。

Returns:
如果此对象被销毁,则为 true ;否则, false
See:
Viewer CesiumWidget 渲染场景以获取渲染此图元所需的绘制命令时调用。

不要直接调用这个函数。记录这只是为了列出渲染场景时可能传播的异常:

Throws: