3D Tiles Essentials【译】
)
Tilesets and Tiles-瓦片集和瓦片
3D Tiles 提供了一种以 JSON 格式描述瓦片集及其瓦片的方法。
除了其属性外,一个瓦片集还包含一组以树形结构——空间层次结构排列的瓦片。3D Tiles 支持多种 3D(及 2D)空间细分,以促进可视化软件进行优化渲染。
一个瓦片:
- 包含或指向瓦片的内容。
- 可以包含子瓦片,并可以引用外部瓦片集,使得将较小的瓦片集组合成较大的瓦片集成为可能。
- 定义了一个包含其子瓦片的空间边界体积(spatial bounding volume)。
Tile Content and Formats-瓦片内容与格式
瓦片的内容是采用以下格式之一的二进制 blob:
Blob 对象表示一个不可变、原始数据的类文件对象。它的数据可以按文本或二进制的格式进行读取,也可以转换成 ReadableStream 来用于数据操作。请参阅:https://developer.mozilla.org/zh-CN/docs/Web/API/Blob 。
- Instanced 3D Model or Batched 3D Model: 3D 模型实例或异构 3D 模型。
- Point Cloud(点云): Massive number of points,海量的点数据。
- Composite(混合格式):其他格式的多个拼接瓦片。
实例化和批处理的 3D 模型(Instanced and Batched 3D models)基于二进制 glTF 构建,包括几何(geometry)和纹理(texture)。轻量级的 glTF 格式是 3D 瓦片灵活空间层次结构的理想补充。
Tile Properties-瓦片属性
瓦片的内容附有一个要素表(Feature Table),该表列出了内容中的要素(如建筑物或点)及其位置和外观属性。
内容还包含一个批处理表(Batch Table),用于捕获对可视化或分析有用的附加属性。
Levels of Detail-细节级别
3D Tiles 实现了可调节的分层细节级别(HLOD,Hierarchical Level of Detail):仅流式传输可见的瓦片,且仅显示对视图最重要的部分。这就是 3D Tiles 为何在与海量、精细的 3D 数据交互时,能够提供流畅、快速的用户体验的原因。
- 可视化软件利用瓦片的几何误差属性及其他屏幕空间指标——如瓦片到摄像机的距离——来选择要流式传输和渲染的瓦片。
- 每个瓦片的细化策略属性决定了子瓦片是应替换父瓦片还是添加到父瓦片中。
Declarative Styling at Runtime-运行时声明式样式
3D Tiles 定义了一种声明式样式语言,可以在运行时修改瓦片要素的颜色和可见性。可视化软件可以根据用户交互和批处理表(Batch Table)中的特征属性应用样式。
关于3D Tiles Styling language具体参考:
An OGC Community Standard-OGC 社区标准
3D Tiles由开放地理空间联盟(OGC)推荐,该组织是一个致力于推进免费、公开的地理空间标准,以促进新技术发展的全球组织。
3D Tiles 1.1
Cesium 的 3D Tiles Next 项目现已被采纳为 3D Tiles 1.1,通过 3D Tiles 的扩展方法改进了规范,新增和提升的功能包括以下能力:
- 高效流式处理语义元数据;
- 通过空间索引运行大规模模拟和分析;
- 集成 glTF 软件和扩展生态系统。
更多关于3D Tiles 1.1规范的内容,请参考文档:https://github.com/CesiumGS/3d-tiles/blob/main/specification/README.adoc 。