当前位置: 首页 > news >正文

利用 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)

 

相关文章:

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

推荐:使用 NSDT场景编辑器 助你快速搭建可编辑的3D应用场景 为了将大量异构 3D 地理空间数据处理和分散到各行各业的地理空间应用程序和运行时引擎,Cesium 创建了 3D Tiles,这是一种用于高效流式传输和渲染大量异构数据集的开放标准。3D Tile…...

微服务——ES实现自动补全

效果展示 在搜索框根据拼音首字母进行提示 拼音分词器 和IK中文分词器一样的用法,按照下面的顺序执行。 # 进入容器内部 docker exec -it elasticsearch /bin/bash# 在线下载并安装 ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch…...

北斗+5G 织就精确定位的“天罗地网”

今年,邓中亮更忙了。 外部会议,内部讨论,课题研究,还有疫情困扰期间没能出的差铆足劲似的补上,一天里,从离开床和回到床中间的时间都被工作冠名了。 北京邮电大学教授邓中亮 忙碌的加速键在2020年按下暂停…...

Ansible Roles详解

Ansible 的角色(Roles)是一种组织和管理任务和变量的方法,可以帮助您更好地组织和重用 Ansible 代码。角色是一个可重用的、自包含的 Ansible 单元,它封装了一组任务和变量,可以在不同的剧本中轻松地重用。 角色的目录…...

微服务学习笔记-基本概念

微服务是一种经过良好架构设计的分布式架构方案。根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务。 微服务的架构特征: 单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力&…...

Linux查看GPU显卡/CPU内存/硬盘信息

显卡信息命令/CPU内存/硬盘 1.显卡2、CPU内存3、硬盘 1.显卡 nvidia-smi nvidia-smi(显示一次当前GPU占用情况) nvidia-smi -l(每秒刷新一次并显示) watch -n 5 nvidia-smi (其中,5表示每隔6秒刷新一次终端…...

SQLAlchemy 入门:Python 中的 SQL 工具包和 ORM

SQLAlchemy 是 Python 中一款非常流行的数据库工具包,它对底层的数据库操作提供了高层次的抽象。在本篇文章中,我们将介绍 SQLAlchemy 的两个主要组成部分:SQL 工具包 (SQL Toolkit) 和对象关系映射器 (Object-Relational Mapper, ORM) 的基本…...

react Hook+antd封装一个优雅的弹窗组件

前言 在之前学vue2的时候封装过一个全局的弹窗组件,可以全局任意地方通过this调用,这次大创项目是用react技术栈,看了一下项目需求,突然发现弹窗还是比较多的,主要分为基础的弹窗以及form表单式的弹窗,如果…...

HICP学习--BGP综合小实验

需要完善 一、实验拓扑 二、实验需求 1、R2-7每台路由器均存在一个环回接口用于建立邻居,同时还存在一个环回来代表连接用户的接口;最终这些连接用户的接口网络需要可以和R1/8的环回通讯 2、AS2网段地址172.16.0.0/16 减路由条目数量 三、实验步骤 首先配置IP R…...

grafana中利用变量来添加dashboard详情页地址实现点击跳转

背景 最近弄grafana的dashboard,突然想到各个dashboard之前可以直接跳转到不同详细页面的面板,于是找了找实现方法 实现 以stat 格式的面板为例,显示出各个pod的对应状态, PromQL是(avg(kube_pod_status_phase{phase"Running", namespace!"kube-system"…...

正则表达式练习

正则表达式练习 工具目的代码运行结果 工具 pycharm 目的 https://www.77xsw.cc/fenlei/1_1/:第一页的网址 https://www.77xsw.cc/fenlei/1_2/:第二页的网址 ... https://www.77xsw.cc/fenlei/1_10/:第十页的网址 代码 import requests im…...

leetcode做题笔记73矩阵置零

给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 思路一:记录行列值 void setZeroes(int** matrix, int matrixSize, int* matrixColSize){int row[matrixSize],col[*matrixColSize];fo…...

【2.1】Java微服务: Nacos的使用

目录 Nacos介绍 Nacos安装 下载和安装 修改端口 启动 服务注册与发现 导入Nacos管理依赖 导入服务依赖 配置Nacos的服务地址 启动服务,查看已注册的服务 服务分级存储模型 分级存储模型介绍 具体结构 配置实例集群 同集群优先的负载均衡策略 服务权重配置…...

vue安装及环境配置

vue安装及环境配置 1.安装 Node.js 2.配置默认安装目录和缓存日志目录 3.配置环境变量 4.配置淘宝镜像 5.安装vue和脚手架 6.创建并运行项目 1.安装 Node.js Download | Node.js 在这里👆下载的是最新版,如果要安装以前的版本👇&…...

java使用正则表达式时遇到的问题

标准的正则表达式是什么样的 Node.js(JavaScript) 在正则表达式中,斜杠(/)用来表示正则表达式的开始和结束。在JavaScript中,正则表达式可以使用斜杠包裹起来,以表示这是一个正则表达式的字面量。 在Node.js中&…...

Git介绍及常用命令详解

一、Git的概述 Git是一个分布式版本控制工具,通常用来对软件开发过程中的源代码文件进行管理。 Git 会跟踪我们对文件所做的更改,因此我们可以记录已完成的工作,并且可以在需要时恢复到特定或以前的版本。Git 还使多人协作变得更加容易&…...

赛事 | 第25届中国机器人及人工智能大赛全国决赛榜单发布

第25届中国机器人及人工智能大赛成功举办 2023年6月13日至14日,第二十五届中国机器人及人工智能大赛于海南科技职业大学成功举办。大赛由中国人工智能学会主办,共有来自清华大学、哈尔滨工业大学、中国科学技术大学、西安交通大学等500多所高校进入全国…...

JavaScript+Asp.Net MVC5同时下载多个文件

前端同时启动多个下载任务(但是没有做压缩包下载) 前端JavaScript脚本: var idList [1,2,3];//要下载的列表 $.each(idList, function (index, item) {downloadURL("/File/GetPdf?id" item); });var count 0; var downloadUR…...

如何实现前后端分离-----前端笔记

本文章转载于【SpringBootVue】全网最简单但实用的前后端分离项目实战笔记 - 前端_大菜007的博客-CSDN博客 仅用于学习和讨论,如有侵权请联系,将源码补充写的更快哦!!!等一会把源码补一下哦! 拿一个项目看…...

Ceph入门到精通-分布式存储产品的测试实践

分布式存储产品的测试实践 在分布式存储产品的测试过程中,测试到底做了些什么事情呢? 一:测试工作内容 需求,设计评审 测试需要参与到每一个过程中 在设计评审的时候就需要知道验收的标准,这是最重要的开始。因为这…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...

Python Einops库:深度学习中的张量操作革命

Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...

人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent

安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...

HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散

前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说,在叠衣服的过程中,我会带着团队对比各种模型、方法、策略,毕竟针对各个场景始终寻找更优的解决方案,是我个人和我司「七月在线」的职责之一 且个人认为&#xff0c…...

基于鸿蒙(HarmonyOS5)的打车小程序

1. 开发环境准备 安装DevEco Studio (鸿蒙官方IDE)配置HarmonyOS SDK申请开发者账号和必要的API密钥 2. 项目结构设计 ├── entry │ ├── src │ │ ├── main │ │ │ ├── ets │ │ │ │ ├── pages │ │ │ │ │ ├── H…...

【Linux】Linux安装并配置RabbitMQ

目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...

Java中栈的多种实现类详解

Java中栈的多种实现类详解:Stack、LinkedList与ArrayDeque全方位对比 前言一、Stack类——Java最早的栈实现1.1 Stack类简介1.2 常用方法1.3 优缺点分析 二、LinkedList类——灵活的双端链表2.1 LinkedList类简介2.2 常用方法2.3 优缺点分析 三、ArrayDeque类——高…...

Copilot for Xcode (iOS的 AI辅助编程)

Copilot for Xcode 简介Copilot下载与安装 体验环境要求下载最新的安装包安装登录系统权限设置 AI辅助编程生成注释代码补全简单需求代码生成辅助编程行间代码生成注释联想 代码生成 总结 简介 尝试使用了Copilot,它能根据上下文补全代码,快速生成常用…...

C# WPF 左右布局实现学习笔记(1)

开发流程视频: https://www.youtube.com/watch?vCkHyDYeImjY&ab_channelC%23DesignPro Git源码: GitHub - CSharpDesignPro/Page-Navigation-using-MVVM: WPF - Page Navigation using MVVM 1. 新建工程 新建WPF应用(.NET Framework) 2.…...