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

news2024/11/16 7:38:31
推荐:使用 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)

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《Python入门到精通》函数详解

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:小白零基础《Python入门到精通》 函数 1、函数的调用2、函数的参数2.1、变量的就近原则2.2、传递参数2.3、形参和实…

恶意扩展可滥用 VS Code 漏洞窃取认证令牌

微软的 Visual Studio Code (VS Code) 代码编辑器存在一个漏洞,允许恶意扩展程序检索 Windows、Linux 和 macOS 中存储的身份验证令牌。 这些令牌用于集成各种第三方服务和 API,如 Git、GitHub 和其他编码平台,因此窃取这些令牌可能会对数据…

试用MetaGPT

简介 最近朋友和B站都给我推 MetaGPT,正好有空就下载亲测了一下。MetaGPT 是目前(230809)github热榜第一名,今天就加了3000多个星。 MetaGPT是一个多智能体框架,能够生成不同的角色:工程师、产品经理、架…

【sonar】安装sonarQube免费社区版9.9【Linux】【docker】

文章目录 ⛺sonarQube 镜像容器⛺Linux 安装镜像🍁出现 Permission denied的异常🍁安装sonarQube 中文包🍁重启服务 ⛺代码上传到sonarQube扫描🍁java语言配置🍁配置 JS TS Php Go Python⛏️出现异常sonar-scanner.ba…

lc345. 反转字符串中的元音字母

元音字母按照从外到内成对的方式反转,不考虑出现的元音字母个数为奇数的情况 双指针:指针1由左向右遍历,指针2由右向左遍历,某个指针指向元音字母时停止,直到它另一个指针也指向元音字母,此时两个指针指向的…

YonGPT发布背后,“实用主义”成为大模型落地新风向

近年来伴随着数字经济的高歌猛进,国内企业服务赛道迅速站上行业风口。以ChatGPT为代表的大模型的到来,更为整个企服赛道添了一把火。而7月27日用友对外发布的首个企业服务大模型YonGPT,则正式宣告了企业服务大模型全新时代的到来。 目前参与…

C# 2048小游戏核心算法

文章目录 01.程序结构划分02.去零03.合并04.上移05.下移/左移/右移&#xff0c;只是取数据的方向不同06.提高可读性 01.程序结构划分 02.去零 有序向量“唯一化”的思路。 /// <summary>/// 去零/// </summary>/// <param name"row">对于一行或一…

torch.functional.affine_grid的坑

问题描述&#xff1a;在用torch进行图像仿射变换的时候&#xff0c;平移始终有问题 比如现在想要让一张图对应的tensor平移0.5个图像长度 那么需要先构造一个transform_matrix&#xff0c;这里网上说的是偏移量不是像素值&#xff0c;而是归一化的比例 shift_x 0.5 shift_y…

dependency xxxx not found 爆红

一、根本方法&#xff1a;直接手动安装jar包 mvn官网下载之后&#xff0c;终端进入该jar包目录下&#xff08;把下载的jar包移动到本地仓库&#xff09; 运行mvn install:install-file -Dfilejar包的路径 -DgroupIdgruopId中的内容 -DartifactIdactifactId的内容 -Dversionver…

智能财务分析的无冕之王-奥威BI数据可视化工具

利用智能数据可视化分析工具&#xff0c;可极大提升财务分析效率和报表可读性&#xff0c;缩短从分析到决策的耗时。但财务分析的难度往往比其他分析更高&#xff0c;因为它的分析指标计算组合变化太多也太快。哪些数据可视化工具能胜任智能财务数据分析&#xff1f; 奥威BI数…

共享饮水机开发让饮用水更放心

共享饮水机是指基于共享经济模式&#xff0c;将饮水机资源进行共享的服务&#xff0c;区别于传统饮水机&#xff0c;它是一款集物联网控制、远程上报、设备检测等为一体的设备。通过共享饮水机&#xff0c;用户可以方便地获得新鲜的饮用水而不需要购买和维护自己的饮水机。 共享…

算法通关村——迭代实现二叉树的前中后序遍历

前言 递归就是每次执行方法调用都会先把当前的局部变量、参数值和返回地址等压入栈中&#xff0c;后面在递归返回的时候&#xff0c;从栈顶弹出上一层的各项参数继续执行&#xff0c;这就是递归为什么能够自动返回并执行上一层的方法的原因。因此&#xff0c;我们也可以模拟一个…

业务逻辑基础与实操

文章目录 一、定义二、业务逻辑的挖掘1.常见业务流程电信网厅业务火车票订购业务流程网购业务流程 三、挖掘关键点1.验证码突破2.业务授权安全a.未授权访问b.越权访问i)平行越权&#xff08;水平越权是指相同权限的不同用户可以互相访问&#xff09;ii) 垂直越权&#xff08;垂…

Flutter:屏幕适配

flutter_screenutil flutter_screenutil是一个用于在Flutter应用程序中进行屏幕适配的工具包。它旨在帮助开发者在不同屏幕尺寸和密度的设备上创建响应式的UI布局。 flutter_screenutil提供了一些用于处理尺寸和间距的方法&#xff0c;使得开发者可以根据设备的屏幕尺寸和密度…

《剑指offer》(6)其他算法

先计算下三角&#xff0c;再遍历一次计算上三角。 class Solution: def multiply(self , A: List[int]) -> List[int]: #长度判断 n len(A) if n < 1: return [] B [1]*n #计算乘矩阵的下三角&#xff0c;B中的每一个数都是A的前一个数和B的前一个数相乘 for i in ran…

“可一学院”区块链学习平台正式启动,助力BSV技术普及与传播

2023年8月8日&#xff0c;上海可一澈科技有限公司&#xff08;以下简称“可一科技”&#xff09; 正式发布区块链学习平台“可一学院”。“可一学院” 立足于BSV区块链技术本源&#xff0c;汇集了多层次的专业课程和学习资源&#xff0c;致力于打造一个适合各类人群使用的一站式…

MobaXterm 中文乱码, 及pojie

中文解决方法&#xff1a; 把“连字”去掉&#xff01; MobaXterm网页&#xff0c;可以生成一个授权文件Custom.mxtpro。放在安装目录就可以了 MobaXterm Keygen (husbin.top)http://b70.husbin.top:5000/

VS+Qt+C++旅游景区地图导航源码实例

程序示例精选 VSQtC旅游景区地图导航 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<VSQtC旅游景区地图导航>>编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c;易读。…

药库管理指南:除了药物质量,这个技能很关键

随着医疗技术的不断进步&#xff0c;药品的质量要求也日益严格&#xff0c;药物的稳定性、疗效以及避免细菌滋生等方面都直接受到温湿度变化的影响。 药品质量和安全是医疗行业的首要任务之一&#xff0c;药库温湿度监控在此过程中发挥着关键作用。通过科学合理地实施温湿度监控…

Java 线程的生命周期和状态(实践加深理解)

一、常规回答&#xff08;八股文&#xff09; 线程的生命周期一共分为有6个状态&#xff0c;在某个时刻中&#xff0c;一个线程只会处在6个状态中的其中一种。 第1&#xff1a;初始状态&#xff08;NEW&#xff09; 当前的线程已经被创建了出来&#xff0c;但是还没有通过调用…