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

推荐:使用 NSDT场景编辑器 助你快速搭建可编辑的3D应用场景

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

Cesium for Omniverse 是 Cesium 对 NVIDIA Omniverse 的开源扩展。它以惊人的速度和质量在全球范围内提供 3D 图块和现实世界的数字孪生。该扩展使用户能够使用通用场景描述 (OpenUSD) 从任何 3D 地理空间内容源快速、高精度地创建真实世界的模型。

借助 Cesium for Omniverse,您可以使用平铺管道快速启动 3D 地理空间应用程序开发,以流式传输您自己的内容。您还可以通过整合来自常用 3D 和摄影测量应用程序(如 Autodesk、Bentley 软件和 Matterport)的真实环境来增强 3D 内容。

例如,您可以将 Bentley 的铁矿石开采设施的 iTwin 模型与 Cesium 集成,以便项目规划人员在精确的地理空间环境中可视化和分析设施。借助 Cesium for Omniverse,项目规划人员可以使用设施的数字孪生与当地公用事业、工程师和居民共享计划和潜在影响,同时考虑特定于位置的详细信息,例如天气和照明。

铁矿石开采设施的数字孪生模型,在铯中为全宇宙建模,具有精确的地理空间背景。

图1.Bentley 南非铁矿石开采设施的 iTwin 模型在其精确的地理空间环境中可视化

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

OpenUSD 3D 瓷砖的新机遇

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

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

为了进一步与美元互操作,Cesium 的开发人员创建了一个以美元为单位的自定义模式,以支持其全尺寸虚拟地球仪(图 2)。

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

创建全尺寸虚拟地球仪

铯在全宇宙中的全尺寸虚拟地球仪。

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

Cesium 3D 工程和生态系统总监 Shehzan Mohammed 表示:“利用 USD 与 3D Tiles 和 glTF 的互操作性,我们创建了额外的工作流程,例如将内容从 Bentley 的 LumenRT for Omniverse、Trimble Sketchup、Autodesk Revit、Autodesk 3ds Max 和 Esri ArcGIS CityEngine 导入到 NVIDIA Omniverse 中,在精确的 3D 地理空间环境中。

在 Omniverse 中,地球的所有信息(例如切片集、影像图层和地理配准数据)都以美元存储。USD 是虚拟世界的高度可扩展和强大的交换。USD的一个关键功能是自定义架构,您可以使用它为复杂和精密的虚拟世界用例扩展数据。

Cesium的团队开发了一个自定义模式,为虚拟地球的关键元素定义了特定的类。架构的C++层使用 OpenUSD TfNote 系统主动监控状态更改,确保在必要时及时更新图块集。Cesium原生用于高效的磁贴流。Omniverse 的较低级别的 Fabric API 用于磁贴渲染,确保最佳性能和高质量的地球可视化表示。

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

开发扩展

为了开发Omniverse的扩展,Cesium的开发人员利用Omniverse Kit,一个低代码工具包来帮助开发人员开始构建工具。Omniverse 工具包在 Omniverse 中提供了示例应用程序、模板和常用组件,它们充当强大应用程序的构建块。

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

全宇宙中铯离子扩展的用户界面截图

图3.全宇宙中的Cesium离子延伸

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

Cesium 使用了许多现有的 Omniverse Kit 扩展,例如 和 ,并创建了自己的扩展来简化任务执行。例如,他们的扩展Cesium电动工具具有更高级的开发人员工具,例如地理空间坐标转换以及将太阳研究与场景的地理配准信息同步。他们计划在未来开发更多这样的扩展,因为他们与Omniverse一起扩展。omni.example.uiomni.kit.debug.vscode

高性能流媒体

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

墨尔本市政厅的街道视图,由超过 500,000 个单独的网格渲染而成。图片由Aerometrex提供。

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

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

原文链接:利用 3D 地理空间数据实现Cesium的沉浸式环境 (mvrlink.com)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/67215.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CEC2013(MATLAB):淘金优化算法GRO求解CEC2013的28个函数

一、淘金优化算法GRO 淘金优化算法(Gold rush optimizer,GRO)由Kamran Zolf于2023年提出,其灵感来自淘金热,模拟淘金者进行黄金勘探行为。淘金优化算法(Gold rush optimizer,GRO)提…

尚硅谷大数据项目《在线教育之采集系统》笔记004

视频地址:尚硅谷大数据项目《在线教育之采集系统》_哔哩哔哩_bilibili 目录 P047 P048 P049 P050 P051 P052 P053 P054 P055 P056 P047 /opt/module/datax/job/base_province.json [atguigunode001 ~]$ hadoop fs -mkdir /base_province/2022-02-22 [atgu…

干货 | 详述 Elasticsearch 向量检索发展史

1. 引言 向量检索已经成为现代搜索和推荐系统的核心组件。 通过将复杂的对象(例如文本、图像或声音)转换为数值向量,并在多维空间中进行相似性搜索,它能够实现高效的查询匹配和推荐。 图片来自:向量数据库技术鉴赏【上…

Hugging Face 的文本生成和大语言模型的开源生态

[更新于 2023 年 7 月 23 日: 添加 Llama 2。] 文本生成和对话技术已经出现多年了。早期的挑战在于通过设置参数和分辨偏差,同时控制好文本忠实性和多样性。更忠实的输出一般更缺少创造性,并且和原始训练数据更加接近,也更不像人话。最近的研…

c51单片机16个按键密码锁源代码(富proteus电路图)

注意了:这个代码你是没法直接运行的,但是如果你看得懂,随便改一改不超过1分钟就可以用 #include "reg51.h" #include "myheader.h" void displayNumber(unsigned char num) {if(num1){P10XFF;P10P11P14P15P160;}else if…

论文讲解——TPU-MLIR: A Compiler For TPU Using MLIR

论文讲解——TPU-MLIR: A Compiler For TPU Using MLIR https://arxiv.org/pdf/2210.15016.pdf概览模型转换TranslationCanonicalizeLoweringLayerGroup BufferizationCalibration QuantizationCorrectness Check相关资料 https://arxiv.org/pdf/2210.15016.pdf 本文将对TPU…

vue3 动态导入src/page目录下的所有子文件,并自动注册所有页面组件

main.js添加一下代码: const importAll (modules) > {Object.keys(modules).forEach((key) > {const component key.replace(/src/, /).replace(.vue, );const componentName key.split(/).slice(-2, -1)[0] -page;app.component(componentName, modules…

RocketMQ 5.x如何使用GRPC方式发送消费消息

这里是weihubeats,觉得文章不错可以关注公众号小奏技术,文章首发。拒绝营销号,拒绝标题党 RocketMQ版本 5.1.0 背景 我们都知道RocketMQ 5.x新增了proxy模式部署方式,也就是支持了GRPC的消费方式消费,所以今天我们来试试 本次…

php通过各种函数判断0和空php实例

php通过各种函数判断0和空php实例 本文给大家介绍php同各种函数判断0和空的方法,在文章给大家补充介绍了php 语法里0不等于null为空的解决办法 补充:下面给大家介绍下php 语法里0不等于null为空的解决办法 今天遇到这样一个问题是这样的: php 语句里,我…

Nevron Diagram for .NET Crack

Nevron Diagram for .NET Crack Nevron Diagram for.NET可帮助您快速轻松地在.NET Windows窗体和ASP.NET应用程序中集成和显示复杂的图表。这是一个完整的绘图解决方案,包含许多交互功能、形状、自动布局和令人惊叹的视觉效果,并配备了现成的控件&#x…

Linux常规操作命令

日升时奋斗,日落时自省 目录 1、vim 1.1、工作模式 1.2、末行模式操作相关命令 1.2.1、保存退出操作 1.2.2、查找替换 1.3、输入模式操作相关命令 1.3.1、移动相关命令 1.3.2、删除和剪切命令 1.3.3、复制操作 1.3.4、撤销 2、head 3、tail 4、ps 5、…

策略模式【Strategy Pattern】

刘备要到江东娶老婆了,走之前诸葛亮给赵云(伴郎)三个锦囊妙计,说是按天机拆开解决棘手问题, 嘿,还别说,真是解决了大问题,搞到最后是周瑜陪了夫人又折兵呀,那咱们先看看…

爬虫学习记录(持续更新)

一、问题记录 1.使用webdriver报错AttributeError: str object has no attribute capabilities 解决:目前使用的selenium版本是4.11.2,可以不必设置driver.exe的路径,selenium可以自己处理浏览器和驱动程序,因此,使用…

Shopify平台Fulfillment业务模块升级

上图是销售订单、发货单与配送之间的关系图,销售订单可以创建多个发货单,多个发货单(不同销售订单)可以合并在一个配送订单进行发货 接口请求错误记录: 1. The api_client does not have the required permission(s). 2. Required parameter missing or…

具有吸引子的非线性系统(MatlabSimulink实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

第三章 图论 No.5最小生成树之虚拟源点,完全图与次小生成树

文章目录 虚拟源点:1146. 新的开始贪心或kruskal性质:1145. 北极通讯网络最小生成树与完全图:346. 走廊泼水节次小生成树:1148. 秘密的牛奶运输 虚拟源点:1146. 新的开始 1146. 新的开始 - AcWing题库 与一般的最小…

(MVC)SpringBoot+Mybatis+Mapper.xml

前言:本篇博客主要对MVC架构、Mybatis工程加深下理解,前面写过一篇博客:SprintBoothtml/css/jsmybatis的demo,里面涉及到了Mybatis的应用,此篇博客主要介绍一种将sql语句写到了配置文件里的方法,即Mybatis里…

将大容量机械硬盘克隆到固态硬盘的简单方法!

可以大容量机械硬盘克隆到固态硬盘吗? 随着硬盘使用时间增长,电脑的性能可能会下降。为了追求更快的读写速度,不少用户将目光投向了固态硬盘。 ​众所周知,固态硬盘的读写速度和启动速度比机械硬盘快。用固态硬盘替…

k8s --pod详解

目录 一、Pod基础概念 1、pod简介 2、在Kubrenetes集群中Pod有如下两种使用方式 3、pause容器使得Pod中的所有容器可以共享两种资源:网络和存储。 (1)网络 (2)存储 4、kubernetes中的pause容器主要为每个容器提供…