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

这篇文章最初发表在 NVIDIA 技术博客上。

地理空间数据为工业元宇宙中的应用提供了丰富的真实世界环境和上下文信息、空间关系和实时监控功能。

近年来,三维地理空间数据激增。技术进步推动了这一快速增长,如高分辨率航空和卫星图像、自动驾驶汽车和机器上的激光雷达扫描仪、 3D 重建算法和人工智能的改进,以及扫描技术向手持设备和智能手机的普及,使日常人能够捕捉自己的环境。

为了处理大量的异构 3D 地理空间数据,并将其分散到跨行业的地理空间应用程序和运行时引擎,Cesium 已创建了 3D Tiles,这是一个用于高效流式传输和呈现海量异构数据集的开放标准。3D Tiles 是一种可流化、优化的格式,旨在支持最苛刻的分析和大规模模拟。

Cesium for Omniverse 是 Cesium 的开源 扩展,适用于 NVIDIA Omniverse。它以惊人的速度和质量提供了全球范围内的 3D 瓷砖和真实世界 数字孪生。该扩展使用户能够从任何 3D 地理空间内容来源快速、高精度地创建适合真实世界的模型,使用的是 Universal Scene Description (OpenUSD)

有了 Cesium for Omniverse ,您可以通过平铺管道来启动 3D 地理空间应用程序开发,以流式传输您自己的内容。您还可以通过结合流行的三维和摄影测量应用程序(如 Autodesk 、 Bentley Systems 和 Matterport )中的真实世界上下文来增强三维内容。

例如,您可以将 Bentley 的铁矿石开采设施 iTwin 模型与 Cesium 集成,以便项目规划者在其精确的地理空间环境中可视化和分析该设施。有了 Cesium 作为 Omniverse ,项目规划者可以使用该设施的数字孪生,与当地公用事业公司、工程师和居民共享计划和潜在影响,并考虑天气和照明等特定位置的细节。

图 1 。 Bentley 的南非铁矿石开采设施 iTwin 模型在其精确的地理空间背景下可视化

该扩展最有趣的功能之一是一个精确、全尺寸的 WGS84 虚拟地球仪,具有实时光线跟踪和人工智能分析功能,可用于 3D 地理空间工作流程。开发人员可以创建与地球仪交互的应用程序,以共享动态地理空间数据。

开放式 3D 瓷砖的新机遇 USD

正如 Cesium 通过与 3D Tiles 的开放性和互操作性构建 3D 地理空间生态系统一样,NVIDIA 正在实现一个基于 OpenUSD 的生态系统。Open USD 最初由皮克斯开发,是一个开放和可扩展的生态系统,用于在 3D 世界中描述、组成、模拟和协作。

通过将 3D Tiles 连接到 Open USD 生态系统, Cesium 为 3D Tiles 的定制和集成开辟了新的可能性,并将其集成到由全球行业的开发人员构建的元宇宙应用程序中。例如,流行的 AECO 工具可以利用 Open USD 添加 Cesium 流式传输的 3D 地理空间上下文,以实现强大的工作流。

为了进一步与 USD 进行互操作, Cesium 的开发人员在 USD 中创建了一个自定义模式,以支持他们的全尺寸虚拟地球仪(图 2 )。

Cesium 的虚拟地球仪是基于 1984 年世界大地测量系统( WGS84 )坐标系的地球表面的数字表示。它涵盖了地球的地形、海洋和大气层,使用户能够以高精度和逼真的方式探索和可视化地理空间数据和模型。

创建全尺寸虚拟地球仪

图 2 :Cesium 全尺寸 WGS84 虚拟地球仪

Cesium 的 3D 工程和生态系统主管 Shehzan Mohammed 表示:"利用 USD 与 3D Tiles 和 glTF 的互操作性,我们创建了额外的工作流程,例如将 Omniverse 、 Trimble Sketchup 、 Autodesk Revit 、 Autodesk 3ds Max 和 Esri ArcGIS CityEngine 的内容从 Bentley 的 LumenRT 导入到 NVIDIA Omniverse 中。"。

在 Omniverse 中,地球仪的所有信息,如瓦片集、图像层和地理参考数据,都存储在 USD 中。 USD 是一个高度可扩展且功能强大的虚拟世界交换。 USD 的一个关键特性是自定义模式,您可以使用它来扩展复杂和复杂的虚拟世界用例的数据。

Cesium 的团队开发了一个自定义模式,为虚拟地球仪的关键元素定义了特定的类。这个模式的 C++ 层使用了 OpenUSD TfNotice 系统,以确保在必要时及时更新瓷砖集。Cesium Native 用于高效的瓷砖流。下层的 Fabric API 来自 Omniverse 的应用程序,用于平铺渲染,确保了最佳性能和地球的高质量视觉表示。

其结果是在 USD 框架内创建并无缝集成了一个强大而精确的 WGS84 虚拟地球仪。

开发扩展

为了开发 Omniverse 的扩展,Cesium 的开发人员利用 Omniverse Kit,这是一个帮助开发人员开始构建工具的低代码工具包。Omniverse Kit 在 Omniverse 中提供了示例应用程序、模板和流行组件,这些组件是功能强大的应用程序的构建块。

Omniverse 套件同时支持 Python 和 C++。扩展的代码主要是用 Python 编写的,而 tile 流代码是用 C++ 实现的。Python 代码和 C++ 代码之间的通信使用 PyBind11 绑定,并尽可能使用 Carbonite 插件。

图 3 。 Omniverse 中的Cesium 离子外延

在项目的最初阶段,团队严重依赖kit-extension-template-cpp作为参考。在熟悉了该平台后,他们开始利用 Omniverse Kit 的高度模块化设计,并开发了自己的 Kit 应用程序来促进开发过程。该应用程序是 Cesium 团队的一个通用开发环境,他们可以在这里建立自己的默认设置,并轻松启用常用的扩展。

Cesium 使用了许多现有的 Omniverse 套件扩展,如omni.example.uiomni.kit.debug.vscode,并创建了自己的以简化任务执行。例如,他们的扩展 Cesium Power Tools 有更先进的开发工具,如地理空间坐标转换和将 Sun Study 与场景的地理参考信息同步。随着 Omniverse 的扩展,他们计划在未来开发更多这样的扩展。

高性能流媒体

对于 Cesium 的街道级到全球范围的工作负载来说,维护 3D Tiles 和全球内容的高性能流媒体可能是一项挑战。为了解决这个问题,他们的团队依靠 Omniverse Fabric API,实现了对场景数据的高性能创建、修改和访问。Fabric 在实现 Cesium 的最佳性能水平、提高负载速度、运行时性能、模拟性能和 GPU 上数据的可用性方面发挥着至关重要的作用。

图 4 。墨尔本街道级摄影测量由超过 30 GB 和超过 500000 个单独网格组成。图片由 Aerometrex 提供

Cesium 以 Fabric 为基础,结合了一种对象池机制,可以在瓷砖卸载时回收几何图形和材料,优化资源利用率。平铺流通过 HTTP 或本地文件系统进行,从而提供高效的数据传输。

开始使用 Cesium 为 Omniverse

Cesium for Omniverse 是在 Apache 2.0 许可证下的免费开源软件,并与 Cesium ion 集成。这提供了对基于云的全球高分辨率 3D 内容的即时访问,包括摄影测量、地形、图像和建筑。此外,业界领先的 3D 平铺管道和全球策划的数据集作为 Cesium 离子可选商业订阅的一部分,使您能够将内容转换为优化的、空间索引的 3D 平铺,准备流式传输到 Omniverse。了解更多关于 Cesium for Omniverse 的信息

探索 Cesium 在 Omniverse 中的学习内容和样本项目。如果你想开始为 Omniverse 构建自己的扩展,如 Cesium, 请访问 Omniverse 开发者资源

参加 SIGGRAPH 吗?请将此会话添加到您的日程中:Digital Twins Go Geospatial With OpenUSD, 3D Tiles, and Cesium,时间是 8 月 9 日上午 10 : 30。

下载标准许可证,开始使用 NVIDIA Omniverse 自由的,或学习如何 Omniverse 企业可以连接您的团队。如果你是一名开发人员, 开始使用 Omniverse为客户构建扩展和应用程序的资源。通过订阅 新闻稿,并在上遵循 NVIDIA Omniverse Instagram 中等的 啁啾。有关资源,请查看我们的 论坛 Discord 服务器 痉挛 YouTube通道。

阅读原文

相关推荐
扫地的小何尚1 天前
NVIDIA RTX 系统上使用 llama.cpp 加速 LLM
人工智能·aigc·llama·gpu·nvidia·cuda·英伟达
布鲁格若门1 天前
AMD CPU下pytorch 多GPU运行卡死和死锁解决
人工智能·pytorch·python·nvidia
centurysee3 天前
【一文搞懂】GPU硬件拓扑与传输速度
gpu·nvidia
算家云10 天前
moffee模型部署教程
人工智能·python·github·markdown·nvidia·ppt·幻灯片制作
坐望云起22 天前
Ubuntu20.04 更新Nvidia驱动 + 安装CUDA12.1 + cudnn8.9.7
linux·ubuntu·nvidia·cuda·onnx·1024程序员节
RZer25 天前
NVIDIA 发布适用于网络安全的 NIM Blueprint
安全·web安全·nvidia
LifeBackwards1 个月前
Ubuntu安装nvidia显卡驱动
ubuntu·显卡·nvidia
great-wind1 个月前
麒麟系统离线安装英伟达驱动
nvidia
utmhikari1 个月前
【DIY小记】新手小白超频i9-12900kf和3070ti经验分享
cpu·显卡·nvidia·超频·微星
学森杰登1 个月前
大模型生成PPT大纲优化方案:基于 nVidia NIM 平台的递归结构化生成
人工智能·python·自然语言处理·chatgpt·powerpoint·nvidia