利用 Cesium 打造沉浸式环境的 3D 地理空间数据

【原文作者:Paul Cutsinger】
近几年,3D 地理空间数据的生成量激增。这类数据为工业应用提供了丰富的真实环境与上下文信息、空间关系以及实时监测能力,可显著提升各领域仿真的真实感、准确性与有效性,从而获得更有意义且可靠的结果。然而,将 3D 数据处理为可用形态并不容易。

Cesium 是一个开放平台,致力于帮助软件应用释放 3D 数据的价值。为在各行业的地理空间应用与运行时引擎中处理与分发异构 3D 地理空间数据,Cesium 创建了 3D Tiles——一种用于大规模、异构数据集流式传输与渲染的开放标准。3D Tiles 面向最苛刻的分析与大规模仿真而优化。

Cesium 长期通过 Open Geospatial Consortium、The Khronos Group 与 Metaverse Standards Forum 等组织,持续推动 3D 地理空间与计算机图形的开放标准。他们也是 Alliance for OpenUSD 的早期成员之一,正借助 NVIDIA Omniverse 构建与 Universal Scene Description (OpenUSD) 及其软件的互操作性与兼容性。

Omniverse 是一个由 API 与微服务构成的模块化开发平台,可基于 OpenUSD 与 NVIDIA RTX 构建 3D 应用与服务。

Cesium 的开源 Omniverse 扩展——Cesium for Omniverse——能够以卓越的速度与质量,在全球尺度上交付 3D Tiles 与真实世界的 digital twins。借助 OpenUSD,该扩展可从任意来源的 3D 地理空间内容快速且高精度地创建“可用于真实世界”的模型。

Cesium 的开源 Omniverse 扩展——Cesium for Omniverse——能够以卓越的速度与质量,在全球尺度上交付 3D Tiles 与真实世界的 digital twins。该扩展还支持用 OpenUSD 从任意 3D 地理空间内容来源快速高精度生成可直接应用于真实场景的模型。

通过 Cesium for Omniverse,你可以借助切片管线快速启动 3D 地理空间应用开发,以流式传输你的自有内容。你也可以将 Autodesk、Bentley、Pix4D、Matterport 等流行 3D 与摄影测量应用的真实世界上下文加入你的 3D 内容以增强效果。

例如,你可以将某铁矿石工厂的 Bentley iTwin 模型与 Cesium 集成,让项目规划人员在精准地理空间上下文中可视化并分析该设施。借助 Cesium for Omniverse,项目规划人员可以使用该设施的 digital twin,与当地公用事业单位、工程师与居民共享方案与潜在影响,并考虑诸如天气与光照等特定地点因素。

A digital twin of an iron ore mining facility modeled in Cesium for Omniverse with precise geospatial context.

图 1. 在南非的某铁矿石工厂,Bentley 的 iTwin 模型在精准地理空间上下文中的可视化

地理空间数据在建筑、工程、施工与运维(AECO)领域的应用

在 AECO 与城市规划中,地理空间数据对于理解某地的物理与环境特征至关重要。3D 地理空间数据可与建筑信息建模(BIM)系统集成,使建筑师与工程师能够创建精准的建筑与基础设施 3D 模型。

利用 3D 地理空间数据支撑 AECO 工作流的一个便捷起点是 Omniverse AECO Demo Pack。通过该 Demo Pack,你可以在精准的地理空间上下文中尝试集成某建筑设计模型。在限定时间内,你可以在 San Francisco 设计一座建筑,并将由 Aerometrex 提供、分辨率达 2 cm 的城市摄影测量模型通过 Cesium for Omniverse 流式传入舞台。

在 Omniverse 中下载并试用 AECO Demo Pack:https://cesium.com/downloads/aeco-demo-pack

3D render of an office building in San Francisco that can be modified as part of the demo pack.

图 2. 使用 Omniverse AECO Demo Pack 在 San Francisco 市中心设计一座建筑

OpenUSD 为 3D Tiles 带来的新机遇

正如 Cesium 通过 3D Tiles 的开放与互操作性构建 3D 地理空间生态,NVIDIA 也正基于 OpenUSD 构建一个开放协作的工业元宇宙。OpenUSD 最初由 Pixar 开发,是一个用于在 3D 世界中描述、组合、仿真与协作的开放、可扩展生态。

将 3D Tiles 接入 OpenUSD 生态,意味着 Cesium 正为全球各行业开发者构建的元宇宙应用打开 3D Tiles 定制与集成的新可能。例如,主流 AECO 工具可利用 OpenUSD,将 Cesium 流式传输的 3D 地理空间上下文加入其中,解锁强大的工作流。

创建全球尺度的虚拟地球

为进一步与 USD 互操作,Cesium 的开发者在 USD 中创建了一个自定义 schema,以支持其全球尺度的虚拟地球(见图 3)。

Cesium 的虚拟地球基于 World Geodetic System 1984 (WGS84) 坐标系,是对地球表面的数字化表示。它涵盖地形、海洋与大气,使用户能够以高准确度与高真实感探索与可视化地理空间数据与模型。

Cesium’s full-scale virtual globe in Omniverse.

图 3. 基于 WGS84 的 Cesium 全球尺度虚拟地球

“通过利用 USD 与 3D Tiles、glTF 的互操作性,我们构建了更多工作流,例如将 Bentley 的 LumenRT for Omniverse、Trimble SketchUp、Autodesk Revit、Autodesk 3ds Max 和 Esri ArcGIS CityEngine 的内容,以精准 3D 地理空间上下文导入 NVIDIA Omniverse。”——Cesium 3D Engineering and Ecosystems 总监 Shehzan Mohammed

在 Omniverse 中,诸如 tileset、影像图层与地理配准数据等关于虚拟地球的全部信息都存储在 USD 中。USD 是针对虚拟世界的高度可扩展且强大的交换格式。其关键特性之一是自定义 schema,你可以据此扩展数据,以应对复杂且精细的虚拟世界用例。

Cesium 团队开发了一个自定义 schema,为虚拟地球的关键元素定义了特定类。该 schema 的 C++ 层使用 OpenUSD TfNotice Notification System 主动监测状态变化,确保在需要时及时更新 tileset。Cesium Native 用于高效的 tile 流式传输;同时采用 Omniverse 的底层 Fabric API 进行 tile 渲染,以确保最佳性能与高质量的地球可视化呈现。

其结果是在 USD 框架内创建并无缝集成的、稳健而精准的 WGS84 虚拟地球。

为 Omniverse 开发 Cesium 扩展

为开发该 Omniverse 扩展,Cesium 开发者使用了 Omniverse Kit——一套低代码工具包,帮助开发者快速构建工具。Omniverse Kit 提供示例应用、模板与常用组件,作为强大应用的构建基石。

Omniverse Kit 同时支持 Python 与 C++。该扩展的大部分代码以 Python 编写,而 tile 流式相关代码则使用 C++ 实现。Python 与 C++ 之间的通信尽可能结合使用 PyBind11 绑定与 Carbonite 插件。

Screencapture of the user interface of the Cesium ion extension in Omniverse

图 4. Omniverse 中的 Cesium ion 扩展

在项目初期,团队大量参考了 kit-extension-template-cpp。熟悉平台后,他们开始利用 Omniverse Kit 的高度模块化设计,并开发了自有的 Kit 应用以促进开发流程。该应用作为 Cesium 团队的通用开发环境,便于他们设定默认配置并轻松启用常用扩展。

Cesium 使用了多个现有的 Omniverse Kit 扩展,例如 omni.example.ui 与 omni.kit.debug.vscode,并创建了自有扩展以简化任务。例如,他们的 Cesium Power Tools 提供更高级的开发者工具,如地理空间坐标转换、将 Sun Study 与场景地理配准信息同步。随着在 Omniverse 中的规模化推进,他们计划在未来开发更多此类扩展。

高性能流式传输

针对从街景级到全球尺度的工作负载,要为 3D Tiles 与全球内容维持高性能流式传输,是一项挑战。为此,团队依托 Omniverse 的 Fabric API,实现对场景数据的高性能创建、修改与访问。Fabric 在帮助 Cesium 达到最佳性能方面至关重要,包括提升加载速度、运行时性能、仿真性能与 GPU 上的数据可用性。

A street-level view of the Melbourne town hall rendered with over 500,000 individual meshes. Image courtesy of Aerometrex.

图 5. Melbourne 的街景级摄影测量数据,超过 30 GB,含 50 万余个独立网格(图像由 Aerometrex 提供)

基于 Fabric,Cesium 引入了对象池机制,使 tile 卸载后能回收几何与材质,从而优化资源利用。Tile 流式可通过 HTTP 或本地文件系统进行,确保高效数据传输。

开始使用 Cesium for Omniverse

Cesium for Omniverse 以 Apache 2.0 许可开源,且已与 Cesium ion 集成。这为你即时访问基于云的全球高分辨率 3D 内容(包括摄影测量、地形、影像与建筑)提供了途径。此外,作为可选的商业订阅,Cesium ion 提供行业领先的 3D 切片管线与全球精选数据集,帮助你将内容转换为空间索引优化的 3D Tiles,随时可向 Omniverse 流式传输。了解更多:https://cesium.com/platform/cesium-for-omniverse/

探索面向 Omniverse 的 Cesium 学习内容与示例项目:https://cesium.com/learn/omniverse/
如果你想像 Cesium for Omniverse 一样构建自己的扩展,请访问 Omniverse Developer Resources:https://developer.nvidia.com/omniverse/get-started

想了解更多,欢迎参加 Cesium 在 GTC 2024 的活动:https://www.nvidia.com/gtc/session-catalog/?tab.allsessions=1700692987788001F1cG&search=cesium#/
并注册参加 GTC 2024 的 OpenUSD Day:https://www.nvidia.com/gtc/sessions/openusd-day/
注册 GTC 2024(线下或线上参与):https://www.nvidia.com/gtc/pricing/
获取最新 AI 动态与基于 OpenUSD 的扩展、应用与服务在 Omniverse 上的构建培训与课程。

开始使用 NVIDIA Omniverse:下载标准许可(免费):https://www.nvidia.com/en-us/omniverse/download/
了解 Omniverse Enterprise 如何连接你的团队:https://www.nvidia.com/en-us/omniverse/enterprise/
开发者入口(构建扩展与应用):https://developer.nvidia.com/omniverse/get-started
订阅平台新闻简报:https://nvda.ws/3u5KPv1
关注 NVIDIA Omniverse:Instagram、Medium、Twitter
社区与资源:论坛、Discord、Twitch、YouTube(详见上述链接页)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值