3D Tiles 2.0 技术审查整理稿
基于 134th OGC Member Meeting: 3D Tiles 2.0 Preview 自动字幕整理并做了轻度顺稿处理,以便阅读。个别产品名和技术术语在语义明确的情况下做了规范化处理。
Amanda Morgan 在开场时表示,3D Tiles 已经改变了地理空间计算领域原本能够做到的事情。自从成为社区标准之后,它已经成为许多应用的重要基础设施之一覆盖全球数字孪生、实时城市景观、仿真,以及在行星尺度上运行的国防工作流。在她看来,这种发展说明了两件事:这个标准是可行的,而且围绕它形成的生态系统正在持续繁荣。
她将 3D Tiles 2.0 定义为对社区需求的直接回应。在 3D Tiles 1.0 和 1.1 之后,用户并没有停下,而是提出了更多问题,也推动了更多应用场景。于是,团队带来了围绕六项关键能力展开的 3D Tiles 2.0:通过 glTF 2.1 实现更紧密的 glTF 集成、体素、时间动态瓦片、矢量瓦片、AEC 扩展,以及 Gaussian splatting。整场分享想表达的核心并不是六个孤立功能,而是一条面向开放式三维地理空间内容未来的统一路线。
以 glTF 2.1 为基础
Sean Lilly 首先介绍了他认为最基础、也最关键的变化:3D Tiles 与 glTF 的进一步融合。他认为,glTF 和 3D Tiles 实际上一直在共同演化。3D Tiles 1.0 中,b3dm 和 i3dm 这类格式本质上是对二进制 glTF 的封装;到了 3D Tiles 1.1,瓦片已经可以更直接地引用 glTF;而在 3D Tiles 2.0 中,这种关系会再向前推进一步。目标是让 3D Tiles 在核心层面建立在 glTF 之上,再在其上叠加地理空间能力。
他的理由是,这两套技术本来就共享很多概念。它们都面向运行时高效传输 3D 内容,都使用场景图概念,也都依赖笛卡尔坐标体系。虽然术语并不完全一致,但两者已经足够对齐,因此进一步整合是合理的。
他还强调,3D Tiles 的意义已经不再局限于地理空间场景。高保真电商展示、大型游戏环境,以及其他复杂三维系统,也越来越需要层级结构、细节层级和外部内容流式加载等能力。与此同时,glTF 社区也在推动对复杂场景的支持。在他看来,这两个生态正在自然汇合。
他们希望从 3D Tiles 带入 glTF 的三个核心概念分别是:包围体层级、细节层级,以及外部 glTF 引用。包围体让 glTF 节点具备裁剪、光线追踪和碰撞检测等能力;外部引用让一个 glTF 场景可以编排多个外部资源;细节层级则把"节点何时向子节点细化"这一机制抽象出来,不管这种细化依据的是几何误差、距离,还是其他规则。
在这种架构下,glTF 2.1 将逐步具备对复杂场景的更强表达能力,而 3D Tiles 则位于其上,作为包含地理空间附加能力的一层配置或剖面,例如区域型包围体、离散全球网格系统、坐标参考系统和椭球信息等。目前,glTF 2.1 的开发已经在 Khronos 内部推进,相关 schema、示例数据和示例实现都在进行中,团队预计在 Q2 拿出较完整的草案规范。同时,3D Tiles 1.1 和现有 tileset JSON 工作流仍会长期继续支持。
体素:面向体数据的表达方式
随后,Lilly 介绍了 3D Tiles 2.0 的另一项重要能力:体素。整晚分享有一个反复出现的主题,就是许多新的 3D Tiles 能力会先以 glTF 扩展的方式出现,而体素也遵循这一思路。这个扩展会在三角形、线和点之外,为 glTF 增加一种新的 primitive 类型,也就是 voxel。
这个设计目前支持盒体、圆柱体和椭球体三种 voxel 形状,未来还可以扩展更多。同时,它也能较自然地融入 glTF 现有结构,因为它建立在现成的 accessor 体系之上。借助 3D Tiles 已有的隐式切片和稀疏可用性机制,体素数据可以只表达真正有数据的区域,而不必存储大量冗余的空值。
压缩是这里的另一个重点。因为这项能力建立在 glTF 之上,所以团队能够直接利用 meshopt 这类已有压缩技术。Lilly 给出的一个例子是:某个数据集从 250 MB 压缩到了 15.4 MB。虽然这是有损压缩,但他说从视觉效果上看,团队并没有明显感受到质量损失。
演示部分以 SwissTopo 的地下数据为主。一个案例展示了地下温度模型的体渲染效果,用户可以通过裁切和高度控制从不同角度检查数据。另一个案例展示了已经部署在 SwissTopo geoportal 中的分类数据,用户可以点击不同位置查看带颜色编码的信息。他还展示了一个基于 COMSPOC 数据的卫星密度可视化案例:在一天时间里追踪 20 多万个具有时间动态属性的轨道对象,并通过体素来呈现密度分布。在实现层面,CesiumJS 端已经完成,Cesium for Unreal 正在推进,相关扩展预计也会在 Q2 定稿。
时间动态 3D Tiles
接下来是时间动态 3D Tiles。Lilly 解释说,这项能力不只是"时间"本身,它可以支持任何动态属性。它的核心思想是:一个 tile 可以拥有多个内容版本,每个版本都带有属性标签,而运行时系统可以依据这些属性选择要加载哪一个内容。
在演示示例中,一个 tile 指向一个 JSON 清单文件,里面列出了多个内容变体,每个变体都有时间戳、修订号等属性。渲染引擎例如 CesiumJS,可以在运行时通过 URI 条件,只加载符合某个时间戳或修订号的内容。
他们提到的一个早期应用场景来自施工,尤其是土方工程。借助 Earthbrain 的数据,团队展示了一个工地如何在同一个 3D Tiles 数据集里随时间演化。每个 tile 都带有多个按时间戳组织的内容版本,因此用户可以拖动时间轴,观察工地状态变化。底层是无人机测绘数据,而绿色点云则是机械设备在施工过程中采集到的 as-built 数据,用于只更新那些真正发生变化的区域。另一个来自 iTwin 的概念验证则说明,动态内容不仅适用于现实世界数据,也适用于在施工阶段不断变化的设计模型。路线图方面,目前已有公开的 pull request,目标是在 Q2 完成扩展规范。
在 3D Tiles 体系中引入矢量瓦片
接下来介绍矢量瓦片的讲者表示,这一直是 Cesium 最常被请求的能力之一,无论是商业客户还是社区用户都提过很多次。他首先指出,"vector" 这个词本身就有很强的歧义,不同语境下差异很大。因此,团队首先从收集使用场景入手,把需求分成两大类。
第一类是大尺度 GIS 数据,也就是传统意义上更偏二维的内容,例如地图、道路网络、兴趣点、等高线等。第二类则是设计模型与地理空间内容混合的那部分三维数据,它们并不是网格模型,但依然应该存在于三维环境中,比如土木工程中的设计线、由计算机视觉提取得到的特征、CAD 中的分类信息,以及其他伴随 mesh 一起存在的结构化几何对象。
在此基础上,团队确定了两个设计原则。第一,必须与 GeoJSON、Mapbox Vector Tile 这类成熟格式兼容,降低用户接入门槛。第二,必须建立一个真正"以 3D 为先"的标准,并且构建在 glTF 和 3D Tiles 现有技术之上,这样才能更自然地处理二维和三维混合内容。
他们的架构也体现了这两个原则。一条路径是完整的数据处理链路:像 GeoJSON 这样的数据被托管、流式传输、切片,再转换成基于 glTF 的 payload 进入可视化运行时。另一条路径则允许一些主流矢量格式在最合适的时候以原始形式直接进入运行时渲染。
几何层面的映射相对直接:点仍然是点,线仍然是线,多边形则出于性能考虑统一三角化。额外的扩展负责描述切片边界,以及在三角化几何之上保留二维形状信息。元数据则借助 EXT_structural_metadata 和 EXT_mesh_features 等现有扩展来表达。
他们展示的原型基于纽约市公开建筑数据,大约包含 110 万个多边形,被切成了 13 个 LOD 层级,整个切片过程大约五分钟完成。原型同时还能处理约 3 万条线段,并保持较高交互性。样式系统则计划通过 3D Tiles 的 declarative styling 在客户端完成,支持地图场景常见的图层顺序、点大小、标签、线宽、虚线、面轮廓和填充等表达方式。路线图显示,他们将在 4 月发起 early adoption,6 月在开发者大会上继续展示进展,并根据用户反馈补充 Mapbox Vector Tile 支持、样式能力和数据管线能力。
面向 CAD 与 BIM 工作流的 AEC 扩展
Gabby Getz 随后介绍了一组归在 AEC 这个总标题下的 glTF 扩展。AEC 即 architecture、engineering、construction,也就是建筑、工程与施工。从实际角度说,她讲的是 CAD 和 BIM 数据这一类工作流。这些工作流对渲染的要求往往和纯写实图形不同,边缘有时和表面同等重要,甚至更重要;同时还常常需要对 z-order 做特殊处理,避免视觉歧义。
她介绍说,Bentley 过去已经有 iModel 这样用于高效存储和查询海量工程数据的体系,也有一个专有的 IMDL 格式用于流式传输和可视化。随着 Cesium 并入 Bentley,同时团队又非常强调开放标准,于是他们决定把这些已经在生产环境中被证明有效的流程,转化为开放的通用规范,让整个生态都能受益。
他们首先处理的是边缘渲染。在很多基础设施设计工作流中,用户需要的是带有明显边缘的非写实表达,而不是普通的线框图。EXT_mesh_primitive_edge_visibility 的目标,就是把真正关键的边,比如轮廓边或圆柱顶部边,以编码紧凑的方式存下来,方便运行时高效渲染。与之配套的 EXT_mesh_primitive_restart 则用于优化批处理和运行时绘制效率。
接着她介绍了线与点。在线和点主导的 CAD 工作流中,颜色、点大小、线宽、虚线样式都带有语义信息。glTF 虽然本身支持点和线,但并不直接保存这些语义相关的样式属性。因此,新的 material line style 与 material point style 扩展,目的是保存最小但必要的一组属性,把这些意义保留下来。
另外一个扩展 EXT_texture_info_consistent_lod 用于解决贴图在不同缩放级别下保持一致外观的问题,尤其适合草地、海底地形这类偏非写实的纹理表达。最后,material planar fill 处理的是共面设计元素之间的 z-fighting 问题,尤其是标签、面片和其他设计对象叠加时,需要稳定可控的渲染顺序。Getz 表示,这些扩展中已有若干规范已经稳定,对应实现也已经进入 iTwin.js 和 CesiumJS,其余部分预计会在月底前继续合并。
Gaussian Splatting 被纳入标准体系
Adam Morris 负责压轴介绍 Gaussian splatting,他开场就说这是自己最近最喜欢的话题。他把 Gaussian splatting 描述为一种高效场景重建的 radiance field 方法:通过稀疏的三维高斯体云来表示场景,并用球谐函数表达视角相关的光照,从而实现反射、高光、各向异性等效果。
尽管前面很多工作都是围绕 glTF 展开的,但 Morris 表示,Gaussian splatting 真正让他们兴奋的,是它在 3D Tiles 世界里的实际表现。正是这种在工程实践中的效果,推动他们希望把它也正式纳入 glTF 标准体系。最终产物就是已经进入 3D Formats Working Group 候选发布阶段的 KHR_gaussian_splatting 扩展。
这个设计采用 point primitive,以便在不支持原生 Gaussian splatting 的渲染器中也能较平滑地回退。基础属性仍然复用 glTF 本身,例如位置和 diffuse color,而扩展部分则补充了 opacity、orientation、scale 和球谐系数等 splat 专属属性。目前规范支持三阶球谐系数,Morris 认为对于他所见过的大多数数据集来说已经足够。
他特别强调了"可扩展性"。因为 Gaussian splatting 仍是一个快速发展的方向,未来很可能会出现新的核函数、排序方法、投影方式、颜色空间和压缩方案,所以扩展必须从一开始就为这些变化预留空间。压缩已经是现实问题。团队与 Niantic Spatial 和 Esri 合作,将 SPZ 格式整合进来,压缩率大约可达到 90%。虽然也是有损压缩,但他表示,在细节足够丰富的场景中,视觉差异很难察觉。
演示中,他们把一个变电站的传统 mesh 重建结果和 Gaussian splatting 结果并排对比。Morris 特别提到了围栏和电线这些细节,认为它们是 splatting 相比传统重建更有优势的典型例子。他还提到,团队甚至做过一个把火焰也捕捉并成功渲染出来的数据集,这在传统重建方法里是非常难处理的内容。基础扩展已在今年早些时候进入 release candidate,预计在 2026 年 Q2 完成正式批准。
一个标准,但必须依赖社区反馈
最后,Amanda Morgan 再次回到台上,对整场内容做总结。她强调,这六项能力不是六个互不相干的新功能,而是一个建立在可靠基础之上的统一标准,由一个值得信赖的社区共同推动。但她也同样明确表示,这项工作还没有完成。团队仍然需要反馈、需要早期采用者、需要真实数据集,也需要各种边界情况,只有这样规范在最终固化之前才能足够成熟。
她随后给出了一条节奏非常紧凑的路线图。团队已经在 Boulder 提出了初始设想,在这场会议上做了技术审查,接下来计划在芬兰的 OGC 成员会议上提交正式 justification。到 7 月,他们希望把实现和示例数据都锁定;到 8 月,则提交规范和 schema,进入审查流程,并开放公开评论和技术委员会评论期。之后,他们计划在南非的 OGC 成员会议上带来 candidate standard,并推动投票。Morgan 特意强调了这个时间尺度:从最早提出构想,到争取形成正式批准的标准,整个周期大约只有十二个月。
她给社区的行动号召非常明确:拿这些能力去跑你自己的真实数据;用你的边缘场景去"折腾"它们;告诉团队哪些地方有效,哪些地方还不够好。无论是通过 Cesium 社区论坛、early adopter 实现,还是开发者大会,社区越早介入,这个标准就越有机会从"不错"变成"真正优秀"。
问答摘录
在后续问答中,有听众提出,如果先把"地理空间"这个标签拿掉,仅从制造业、AI 视频生成等更广泛行业角度来看,这些工作会有什么影响。演讲者的回答是,不同技术的跨行业价值不完全一样,但其中不少能力确实已经超出地理空间领域。体素对科学和地质类工作流很有意义,而 Gaussian splatting 与 radiance field 则很可能在游戏、机器人等生产场景中越来越重要。他们认为,3D Tiles 最核心的优势之一,就是对超大规模数据集进行高效流式处理,而这本身就是一种跨行业能力。
还有听众问到了地球物理相关场景,比如用于市政基础设施的地质雷达和电磁数据。演讲者回应说,这类需求与他们当前做的地下体数据可视化方向是高度契合的,包括剖面显示等能力也已经有相应实践,因此他们非常希望继续了解这类需求,并确保标准能够覆盖到这些场景。
线上还有一个问题问到 Gaussian splatting 对水体和植被的处理效果。Morris 表示,他们已经有相关演示。水体在使用三阶球谐时通常能呈现比较真实的镜面或高光效果;植被方面,虽然在某些情况下仍然会显得有些"团块感",但总体上已经比很多传统重建方法更真实。如果源数据精度足够高,甚至可以按真实比例重建出树木的细部结构,而这在过去通常需要更专门的技术。
另一个问题涉及 3D Tiles 1.0 的向后兼容性。回答是,3D Tiles 2.0 可能会去掉部分旧的容器格式,但 tileset JSON 和基于 glTF 的工作流仍会完整保留。还有听众询问,后续参考实现是否只会由核心团队提供,还是其他公司也会参与。对此,演讲者表示,已经有多个实现存在,另一些也在推进中,只要各方可以公开,就会尽量以公开方式分享出来。
结语
Morgan 最后的意思很明确:团队真正兴奋的,不只是某几项新功能本身,而是地理空间生态与 glTF 生态之间正在发生的更深层融合。一旦 3D Tiles 建立在 glTF 之上,社区就可以更自然地继承更大范围的 glTF 扩展成果,例如物理、交互等方向的能力。换句话说,3D Tiles 2.0 不只是对一个地理空间标准的升级,它也可能成为连接多个技术社区的一座桥梁。
她感谢大家在很晚的时段仍然留在现场,并邀请所有人继续与工程师交流。她想传达的最后一句话其实很简单:3D Tiles 2.0 最终会长成什么样,取决于社区现在是否真正参与进来。