Cesium ——模型数据 3D Tiles

1,264 阅读2分钟

模型数据介绍——3D Tiles

3D tiles作为Cesium的主要支持模型数据,主要适用于展示大区域的建筑模型,采用loD(levels of Detail)分层加载的方法实现模型的快速加载呈现。

3D tiles类型

类型标识应用
批量三维模型b3dm传统三维建模数据、BIM数据、倾斜摄影数据
实例三维模型i3dm一个模型多次渲染的数据,灯塔、树木、椅子等
点云pnts点云数据
复合模型cmpt复合场景模型

上述的批量3D模型(b3dm)和实例3D模型(i3dm)是基于glTF构建的,点云格式不嵌入glTF中。

3D tiles三维瓦片数据集

第一层级的基本属性

WeChatbefb99331dcf7c4defb54efa249ffad6.jpg

第二层级属性

WeChat9416ad138b2b5aef153b30f95f5a239c.jpg

  • boundingVolume:空间范围框,允许有box、sphere、region(盒子、球体、区域)三种范围框,但是只能定义一种
  • geometricError:几何误差,小于父级的几何误差数。
  • content:瓦片内容,uri/url属性引用二进制瓦片数据文件。

WeChat28fec483b8a6b1c90653d1cf5959edb7.jpg

模型和数据结构

FeatureTable(特征表)和Batch(批处理表)是模型记录数据最重要的两张表

FeatureTable:记录的是整个瓦片渲染相关的数据,而不是渲染所需的数据。渲染相关,即有多少个模型,坐标是相对的话相对于哪个中心,如果是点云的话颜色信息是什么以及坐标如何等;渲染所需,例如顶点信息、法线贴图材质信息均由glb部分完成。

Batch:三维模型的要素表,在一个瓦片中,一个三维要素(GIS中的通常叫法)= 一个模型(图形学、工业建模叫法) = 一个BATCH(3dtiles叫法), 批次表中每个属性数组的个数,就等于模型的个数,因为有多少个模型就对应多少个属性。
_BATCHID是与几何数据对应的关键键

Cesium查询瓦片批量表

WeChatbff4e4fac59192726a0e18b8f9f8952e.jpg

用到了 Cesium3DTileFeature.getPropertyNames() 方法获取批量表中所有属性名,用了 Cesium3DTileFeature.getProperty(string Name) 来获取对应属性名的属性值