麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

Cesium API - ClassificationPrimitive 中文文档

本文介绍下Cesium中 ClassificationPrimitive API的详细使用说明。

ClassificationPrimitive API 调用方法

new Cesium.ClassificationPrimitive(options)
分类图元表示Scene中要突出显示的几何图形的包围体。

图元将几何图形实例与描述完整阴影的Appearance组合在一起,其中包括Material和RenderState。 大致上,几何实例定义了结构和位置,外观定义了视觉特征。解耦几何和外观允许我们混合和匹配它们中的大多数,并独立地添加一个新的几何或外观。 在直接使用ClassificationPrimitive时,只支持在所有实例中使用相同颜色的PerInstanceColorAppearance。 当分类地形或3D Tiles使用GroundPrimitive代替时有完整的Appearance 支持。

为了正确的渲染,这个特性需要EXT_frag_depth WebGL扩展。对于不支持此扩展的硬件,将在某些视角渲染伪像(artifacts)。

有效的几何图形有BoxGeometry、CylinderGeometry、EllipsoidGeometry、PolylineVolumeGeometry和SphereGeometry。

沿椭球表面的几何图形,如CircleGeometry、CorridorGeometry、EllipseGeometry、PolygonGeometry和RectangleGeometry, 如果是挤压体,也同样有效;否则,它们将不会被渲染。

Name Type Description
options Object optional 具有下列属性的对象:
Name Type Default Description
geometryInstances Array | GeometryInstance optional 要渲染的几何图形实例。它可以是单个实例,也可以是长度为1的数组。
appearance Appearance optional 用来渲染图元的外观。当几何实例具有颜色属性时,默认设置为PerInstanceColorAppearance。
show Boolean true optional 确定是否显示此图元。
vertexCacheOptimize Boolean false optional 当true时,几何顶点被优化为前后顶点着色器缓存。
interleave Boolean false optional 当true时, 几何顶点属性是交错的,这可以略微提高渲染性能,但增加了加载时间。
compressVertices Boolean true optional 当true时, 几何顶点被压缩,这将节省内存。
releaseGeometryInstances Boolean true optional 当true时, 该图元不保留对输入geometryInstances的引用,以节省内存。
allowPicking Boolean true optional 当true时, 每个几何体实例只能用Scene#pick来拾取。当false时, 节省GPU内存。
asynchronous Boolean true optional 确定图元是异步创建(true)还是阻塞直到准备就绪。
classificationType ClassificationType ClassificationType.BOTH optional 确定是否地形,3DTiles或两者都将被分类。
debugShowBoundingVolume Boolean false optional 只是用来调试,是否显示图元的包围球。
debugShowShadowVolume Boolean false optional 仅供调试。确定是否绘制了图元中每个几何图形的阴影体。 在创建体之前,必须是true,几何图形被释放或options.releaseGeometryInstance必须是false。
参考:

成员变量

readonlyallowPicking : Boolean
当true时,每个几何体实例只能用Scene#pick来拾取。 当false时,节省GPU内存。
Default Value: true
readonlyasynchronous : Boolean
确定图元是异步创建(true)还是阻塞直到准备就绪。
Default Value: true
确定是否地形,3DTiles或两者都将被分类。
Default Value: ClassificationType.BOTH
readonlycompressVertices : Boolean
当true时,何顶点被压缩,这将节省内存。
Default Value: true
debugShowBoundingVolume : Boolean
此属性仅用于调试;它既不用于生产,也不是最优的。

为图元中的每个draw命令绘制边界球。

Default Value: false
debugShowShadowVolume : Boolean
此属性仅用于调试;它既不用于生产,也不是最优的。

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

Default Value: false
readonlygeometryInstances : Array|GeometryInstance
要渲染的几何图形实例。 如果构造图元时options.releaseGeometryInstances为true,则此属性为undefined。

在图元渲染后更改此属性没有效果。

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

Default Value: undefined
readonlyinterleave : Boolean
当true时,几何顶点属性是交错的,这可以略微提高渲染性能,但增加了加载时间。
Default Value: false
readonlyready : Boolean
确定图元是否完成并准备渲染, 如果此属性为true,则在下一次调用ClassificationPrimitive#update时将渲染图元。
获取在图元准备渲染时解析的promise。
readonlyreleaseGeometryInstances : Boolean
当true时,该图元不保留对输入geometryInstances的引用,以节省内存。
Default Value: true
确定是否显示图元,这会影响到图元中的所有几何实例。
Default Value: true
readonlyvertexCacheOptimize : Boolean
当true时,几何顶点被优化为前后顶点着色器缓存。
Default Value: true

内置方法

staticCesium.ClassificationPrimitive.isSupported(scene) → Boolean
确定是否支持ClassificationPrimitive渲染。
Name Type Description
scene Scene 场景(Scene对象)。
返回值:
如果支持ClassificationPrimitives返回true。
销毁此对象持有的WebGL资源。

一旦对象被销毁,它将不能在使用;调用除isDestroyed之外的任何函数都会导致DeveloperError异常。 因此,将返回值(undefined)赋给对象,如示例所示。
异常情况:
示例:
e = e && e.destroy();
参考:
getGeometryInstanceAttributes(id) → Object
返回 GeometryInstance 的每个实例的可修改属性。
Name Type Description
id * GeometryInstance的id.
返回值:
以属性格式表示的类型化数组;如果没有实例,则未定义类型。
异常情况:
  • DeveloperError : 必须在调用getGeometryInstanceAttributes之前调用update。
示例:
var attributes = primitive.getGeometryInstanceAttributes('an id');
attributes.color = Cesium.ColorGeometryInstanceAttribute.toValue(Cesium.Color.AQUA);
attributes.show = Cesium.ShowGeometryInstanceAttribute.toValue(true);
isDestroyed() → Boolean
如果该对象没被销毁,返回false。

如果该对象已经被销毁,使用isDestroyed 会触发 DeveloperError 异常。
返回值:
false
参考:
在 Viewer 或 CesiumWidget 渲染场景时调用至获取渲染该图元所需的绘制命令。

不要直接调用此函数。这只是为了列出渲染场景时可能出现的异常:

异常情况:
  • DeveloperError : 所有几何实例必须具有相同的primaryType。
  • DeveloperError : 外观和材质具有相同名称的uniform。
  • DeveloperError : 并不是所有的几何图形实例都具有相同的颜色属性。

其他API

Cesium中文API文档手册(v1.63.1版本)参考:《Cesium中文API文档手册(v1.63.1版本)》

相关阅读

麻辣GIS-Sailor

作者:

GIS爱好者,学GIS,更爱玩GIS。

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

手机阅读
公众号关注
知识星球
手机阅读
麻辣GIS微信公众号关注
最新GIS干货
关注麻辣GIS知识星球
私享圈子

留言板(小编看到第一时间回复)