第二章:模型数据介绍——3D Tiles
3D tiles作为Cesium的主要支持模型数据,主要适用于展示大区域的建筑模型,采用loD(levels of Detail)分层加载的方法实现模型的快速加载呈现。
3D tiles类型
类型 | 标识 | 应用 |
---|---|---|
批量三维模型 | b3dm | 传统三维建模数据、BIM数据、倾斜摄影数据 |
实例三维模型 | i3dm | 一个模型多次渲染的数据,灯塔、树木、椅子等 |
点云 | pnts | 点云数据 |
复合模型 | cmpt | 复合场景模型 |
上述的批量3D模型(b3dm)和实例3D模型(i3dm)是基于glTF构建的,点云格式不嵌入glTF中。
3D tiles三维瓦片数据集
第一层级的基本属性
第二层级属性
- boundingVolume:空间范围框,允许有box、sphere、region(盒子、球体、区域)三种范围框,但是只能定义一种
- geometricError:几何误差,小于父级的几何误差数。
- content:瓦片内容,uri/url属性引用二进制瓦片数据文件。
模型和数据结构
FeatureTable(特征表)和Batch(批处理表)是模型记录数据最重要的两张表
FeatureTable:记录的是整个瓦片渲染相关的数据,而不是渲染所需的数据。渲染相关,即有多少个模型,坐标是相对的话相对于哪个中心,如果是点云的话颜色信息是什么以及坐标如何等;渲染所需,例如顶点信息、法线贴图材质信息均由glb部分完成。
Batch:三维模型的要素表,在一个瓦片中,一个三维要素(GIS中的通常叫法)= 一个模型(图形学、工业建模叫法) = 一个BATCH(3dtiles叫法),
批次表中每个属性数组的个数,就等于模型的个数,因为有多少个模型就对应多少个属性。
_BATCHID是与几何数据对应的关键键
Cesium查询瓦片批量表
用到了 Cesium3DTileFeature.getPropertyNames()
方法获取批量表中所有属性名,用了 Cesium3DTileFeature.getProperty(string Name)
来获取对应属性名的属性值