Introducing 3D Tiles【译】
)
Cesium 是一个用于可视化地球(及其他天体)的 3D 平台,涵盖从太空中的每一颗卫星,到曼哈顿的每一栋建筑,再到火星上的每一个陨石坑。为了实现连接全球地理空间数据的“数字地球”愿景,我们很高兴推出自 Cesium 本身以来最大的举措:3D Tiles。
3D Tiles 是一个用于流式传输大规模异构 3D 地理空间数据的开放规范。为了扩展 Cesium 的地形和影像流式传输功能,3D Tiles 将被用于传输 3D 内容,包括建筑物、树木、点云和矢量数据。
3D Tiles 已经在 Cesium 中取得进展;例如,参见:
3D Tiles 将图形研究、电影行业和游戏行业的技术引入 3D 地理空间领域,定义了一种空间数据结构和一系列专为 3D 设计的瓦片格式,优化了流式传输和渲染。用于 3D 模型的瓦片采用了 glTF 格式,这是由 Khronos 开发的 WebGL 运行时资产格式,Cesium 团队对此做出了重大贡献。
glTF(Graphics Language Transmission Format,图形语言传输格式)是一种免版税的规范,用于引擎和应用程序高效传输和加载 3D 场景及模型。glTF 能够最小化 3D 资产的大小,并减少解包和使用这些资产所需的运行时处理。glTF 定义了一种可扩展的发布格式,通过促进行业内 3D 内容的互操作使用,简化了创作工作流程。

加载 Cesium 中的 3D Tiles将像这样简单:
1 | var viewer = new Cesium.Viewer('cesiumContainer'); |
3D Tiles有如下特点:
- 开放的
- 为流式传输和渲染优化的
- 为 3D 设计的
- 交互式的
- 可定制样式的
- 适应性强的
- 灵活的
- 异构的
- 精确的
- 时间动态的
开放的
3D Tiles 是一个开放规范,并在 Cesium 中提供了开源实现。我们期待其他 3D 引擎和转换工具也能使用 3D Tiles。
此外,我们通过发布相关技术文章(如 Cesium 中的边界体优化和平面遮罩技术)来推动该领域的发展。
规范和实现的开发都在进行中,我们鼓励在Cesium 论坛上进行公开讨论。我们预计它们将在 2016 年春季稳定下来。
针对流式传输和渲染进行了优化
3D Tiles 的主要目的是提高海量异构数据集的流式传输和渲染性能。3D Tiles 的基础是一种空间数据结构,它支持分层细节级别 (HLOD),因此只有可见的瓦片(tiles)才会被流式传输 - 并且只有那些对于给定的 3D 视图最重要的瓦片(tiles)才会被流式传输。瓦片(tiles)有效载荷可以是二进制和上下文感知压缩,例如,使用 Open3DGC 或oct-encoding。
3D Tiles 的设计团队从一开始就使用 WebGL,而在此之前,他们已经使用 OpenGL 多年。因此,与 glTF 一样,从接收 3D Tile 到使用 WebGL 渲染它的流程经过了简化,变得快速而简单,并最大限度地减少了客户端处理。为了减少 WebGL 绘制调用的数量,可以对 Tile 进行预批处理或动态批处理。
适用于 3D
从一开始,3D Tiles 就为真正的 3D 设计,支持自由漫游的摄像头;它们不仅限于 2.5D 视角等场景。
3D Tiles 不依赖于缩放级别等二维结构,而是基于几何误差进行细节层次(LOD)选择和可调节的像素误差。这使得性能/视觉质量得以调整,并能在同一视图中构建多个“缩放级别”。
在 3D Tiles 中,边界体积是三维的,而非二维的制图范围。在二维情况下,瓦片方案通常基于 Web Mercator 投影。Web Mercator 对于三维应用并不理想,因为两极会投影至无限远,并且 NGA 不建议将 Web Mercator 用于国防部(DoD)应用。相比之下,在 3D Tiles 中,瓦片方案在三个维度上都是可适应的,这取决于数据集中的模型及其分布。
NGA,即National Geospatial-Intelligence Agency,美国国家地理空间情报局。
DOD,United States Department of Defense,美国国防部。
传统的地理空间要素,如多边形和多段线,可以被拉伸或绘制在地表之上。但 3D Tiles 超越了点、多段线和多边形,能够处理包含网格、材质和节点层次结构的完整 3D 模型。
交互式的
3D Tiles 支持交互式选择和样式设置。即使通过批处理等 WebGL 优化,3D Tiles 仍允许对单个模型进行交互,例如鼠标悬停时高亮显示或移除 3D 建筑物。瓦片可以包含每个模型的元数据,以实现更多交互功能,例如使用建筑物 ID 查询第三方Web服务。
可定制样式的
各个模型的元数据(例如建筑物高度或建造年份)可用于运行时着色,无需编写代码。样式可以即时更改。
适应性强
例如,TMS 中使用的传统四叉树细分对于地图图块和 2D 来说已经足够,但对于 3D 和非均匀数据集分布来说并不是最优的。
3D Tiles 支持 3D 中的自适应空间细分,包括 kd 树、四叉树、八叉树、网格和其他空间数据结构。转换工具可以自适应地细分数据集,例如,根据渲染每个模型的成本和模型的分布,从而产生平衡的数据结构,而不是严格的空间细分。像 Cesium 这样的运行时引擎是通用的,可以与所有细分技术配合使用。
灵活的
在传统的 2D 地图瓦片中,当用户放大时,可见的地图瓦片会被替换为新的更高分辨率的瓦片。这种过程称为细化。从某种意义上说,这是对同一内容的子集进行了再次下载,只是分辨率更高。我们把这种替换称为细化,它对于影像瓦片甚至 3D 地形来说都是一种合理的解决方案。
然而,对于其他 3D 数据集(如建筑物和点云),需要更大的灵活性。例如,与其在用户放大时反复下载同一个建筑物的不同分辨率版本,3D Tiles 更倾向于仅流式传输新的建筑物数据。我们称之为增量细化。增量细化的额外优势在于,子瓦片可以在下载时立即渲染,而替换精化则要求先下载完所有父瓦片的子瓦片。3D Tiles既支持替换细化也支持增量细化。
Additive refinement:这里翻译为增量细化。replacement refinement:这里翻译为替换细化。
随着视图的进一步放大,包含下一级重要建筑的子瓦片会通过增量细化流式传输进来。此处展示了根瓦片及其最接近的子瓦片。
异质
3D Tiles 是异构的,因为没有一种适用于所有 3D 数据集的统一格式。批量模型(Batched models,例如建筑物)需要一种不同于实例模型( instanced models,例如树木)的表示方式,而实例模型又需要一种不同于点云(point clouds)的表示方式,等等。
3D Tiles 通过自适应细分、灵活细化和可扩展的瓦片格式集来支持异构数据集。
3D Tiles的异质性质允许结合 HLOD 实现不同细节级别,例如,一个 3D 建筑在某一细节级别可能是一个广告牌和标签,在更高细节级别可能是一个拉伸的足迹,在下一个细节级别可能是一个 3D 模型,在最高细节级别可能是一个纹理化的 3D 模型。
HLOD:Hierarchical Level of Detail,即分层的细节层次。
LOD:Level of Detail,即细节层次。细节层次(Level of detail)随着物体或者模型远离观察者而逐步降低。
精确的
Given Cesium’s roots in rocket science (literally), 3D Tiles provide full-precision geometry to avoid jittering artifacts without the cost of storing double-precision values.
鉴于 Cesium 的火箭科学背景(字面意义上),3D Tiles 提供了全精度几何体,以避免抖动伪影,而无需承担存储双精度值的成本。
时间动态的
Cesium 专为时间动态可视化设计,如卫星和无人机的展示。下一步是将其扩展至 3D Tiles,在配合大规模时间动态地形和点云数据情况下,方便用户能够随时间查看地形或积雪覆盖的变化,。
下一步
更多的示例,请参阅我们使用 CyberCity 3D 的 3D 建筑制作的演示:
CyberCity 3D官方网址:https://www.cybercity3d.com/
关于具体细节,请查看 3D Tiles 规范,并准备好使用 3D Tiles 和 Cesium 构建令人惊叹的应用程序。
此外,AGI 的 Cesium 团队正在所有领域招聘,包括 3D Tiles。联系我了解与我们合作的相关信息。