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: