3DTiles
3DTiles 是一种开放的规范,用于传输和加载海量的异构三维地理空间数据集。它使用了类似于地形和影像的瓦片流技术,使得建筑物、BIM 模型、点云和倾斜摄影等大规模三维模型能够在 Web 端流畅地展示。其数据结构基于 gltf 和其它 3D 数据格式,使用流式传输方式,可以支持多个级别的 LOD,并使用 Tilesets(瓦片集合)来组织和管理数据。3DTiles 具有以下特点:
支持大规模、高精度的三维模型数据展示。
采用标准的
json格式描述数据结构和元数据。使用
DRACO和LZMA等压缩算法,提高数据传输和存储效率。支持多级别的
LOD,并支持快速开启、关闭不同级别的数据层。
LOD
LOD 技术即 Levels of Detail 的简称,意为多细节层次。LOD 技术指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。
下图展示了同一个模型在相机由近及远的精细度变化:

其实在 Cesium 中 LOD 有两种模式:Add 和 Replace,上面的模型精细度变化其实就是传统的 Replace 模式,但是这种模式在应对 BIM 这种庞大构件数的模型时几乎不可用,下图为 Add 模式(左)和 Replace 模式(右)对比:

或许有人会说 Add 这种模式就不属于 LOD 了,确实如此,所以 Cesium 说是 Level Of Importance,即重要性层次,优先显示重要的对象,先填充满画面,再显示次要的对象。借此来快速填充满整个画面,不让用户有等待加载的感觉。
常见数据格式
- 倾斜摄影
一般由无人机摄影并结合 ContextCapture 软件计算生成

- BIM/人工模型
由建模师通过 3ds Max 等建模软件绘制

- 点云
一般由激光扫描工具生成

数据转换
上面这些数据都有自己原始的格式,并不能直接添加到 Cesium 中显示,需要转换为 3DTiles 格式,目前市面上比较常用的转换工具有 cesiumlab、osgblab、dasviewer。
数据转换为 3DTiles 格式后,默认会有一个 tileset.json 文件,这是 3DTiles 文件的索引文件,加载时需要从该文件开始读取。
