如何使用Omniverse Kit开发元宇宙

news2024/12/26 11:26:03

最近我研究了一些潜在的元宇宙开发平台。尽管Facebook上个月引发了关于元宇宙的最新一轮炒作,但另一家公司英伟达(Nvidia)在开发实际元宇宙平台方面走得更远。Nvidia的Omniverse自2019年以来一直在运行,因此在今天的帖子中,我将看看其开发工具包:Omniverse Kit。

正如我上周所指出的,Omniverse的主要目的是允许工程师通过共同处理产品的数字表示来协作构建产品。这是一个面向设计和制造公司的仿真和协作平台。

Omniverse Kit是开发人员为Omniverse创建应用程序的方式。 不过它只是整个开发平台的五个组件之一。其他四个部分是Nucleus,Connect,Simulation和RTXRenderer — RTX是Nvidia的高端专业视觉计算平台。后三个组成部分容易理解,但Nucleus需要一些解释。首先,这是架构图:

image.png

简单来说,Nucleus是Omniverse应用程序与之交互的一组服务。在Omniverse Kit的视频介绍中,Nvidia软件高级总监Damien Fagnou表示,Nucleus"代表了不同应用程序之间的协调点"。

1、开发技术栈

对于开发人员来说,Omniverse Kit 技术栈如下所示:

image.png

正如Fagnou在视频中指出的那样,"极端模块化"和扩展是Omniverse Kit的两个关键概念。为了解释,他展示了在使用Kit构建内部应用Omniverse Create时的运作机制。Create不是一个大型的单体应用程序,而是使用许多扩展(基本上是软件模块)构建的。

"它不是一个应用程序,而是由扩展组成的,"Fagnou说。"这些扩展被称为构建基块,你可以通过多种方式组装它们来创建不同类型的应用程序。在更高层次上,它们都是用Python编写的,以组装UI,工作流程和一般功能集。

image.png

2、建立在通用场景描述之上

所有Omniverse,包括Kit,都是建立在Pixar开源Universal Scene Description(USD)之上的。它既是一种文件格式,也是"使用API的强大场景表示"。

正如在另一个Nvidia视频中所解释的那样,Omniverse是第一个完全围绕USD构建的应用程序。"这不是一种导入导出格式,"英伟达软件开发总监Dirk Van Gelder说(在此之前,他是在Pixar工作23年的资深人士),"你正在处理的实际文档是USD本身。

示例是解释USD的最简单方法。在Van Gelder在视频中展示的一个场景中,他移动了一匹马。每次当马匹移动时,在USD中的值都会发生变化。

image.png

3、物理学和Python的作用

3D元宇宙平台的关键部分之一是它的"物理性",这意味着它模拟物理世界的运作方式。Nvidia有几个仿真SDK,其中之一是物理SDK PhysX。

image.png

PhysX的核心功能之一是角色控制器(CCT),“一种视频游戏风格的移动控制器,允许用户在一个世界中移动,而不能穿过支持物理碰撞的物体”(墙壁,其他人等)。

虽然开发人员可以轻松使用Omniverse Create这样的工具来添加和编辑CCT,但他们也可以通过Python脚本"调整"CCT行为 - 例如,文档指出,"你可以添加绑定和脚本以使CCT跳跃。

因此,如果Python开发人员想要从Web开发跳到元宇宙开发,他们可能会在竞争中占据优势。Nvidia最近的职位空缺表明了如果你是一个有兴趣沿着元宇宙路径前进的开发人员,需要做些什么。除了计算机科学学位外,最近Omniverse团队招聘启事的申请人还需要"强大的C++和Python技能"以及"对游戏等实时系统的深刻知识"。

4、微服务

最后,值得一提的是 Omniverse Kit 的微服务架构。在Nvidia高级软件工程经理Jozef van Eenbergen的视频中,他解释说微服务与Kit的扩展密切相关。

"服务可以是扩展的一部分,使用扩展或Kit执行的简单脚本,"他说。

如何在 Kit 中使用微服务的一个示例是生成缩略图图像。"通信通过http进行,内容浏览器指示一组服务按需生成缩略图,"van Eenbergen说。

image.png

5、结论

如你所见,Omniverse开发人员平台范围广泛,并且具有许多移动部件。但是,如果你是一个熟悉Python和/或C++的开发人员,并且对计算机图形学感兴趣,那么你的职业生涯转向元宇宙并不是一个很大的飞跃。

截至目前,Nividia的Omniverse似乎是开发人员进入3D网络的完美方式,正如我在开始时提到的,这是一个市场趋势。尽管Facebook也在招聘其新成立的"元宇宙产品组",但它还没有一个开发者平台。另一方面,Nvidia拥有一个功能齐全的元宇宙平台,该平台建立在Pixar成熟的开源技术之上。

事实上,也许Nvidia相比Facebook和其他平台的两到三年的领先优势将导致Omniverse成为开发人员通往元宇宙的主要门户。这还有待观察,因为Omniverse目前针对的是企业市场,但无论哪种方式,我都会鼓励感兴趣的开发人员查看Omniverse Kit。

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

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

相关文章

Python武器库开发-flask篇之模板渲染(二十四)

flask篇之模板渲染(二十四) Flask 中的模板是一种将数据和 HTML 代码组合在一起的方式,使得我们可以生成动态的 HTML 页面。使用模板可以使我们的代码更加简洁、易于维护和复用。在真实的环境中,我们往往接触到的是由 html、CSS和JavaScript所做的网页&…

使用 Python 的基于边缘和基于区域的分割

引言 在本文中,我们将重点讨论基于边缘和基于区域的分割技术。在讨论细节之前,我们需要了解细分它们分别是什么以及它们是如何工作的。 分割 图像分割是一种将数字图像分割成各种图像对象的技术。 区域中的每个像素(图像对象)在某些属性(如颜色、亮度…

【新版Bing】集成chatGpt4的搜索引擎

具体步骤 打开Chrome浏览器,进入无痕模式。 访问bing.com/new;(需要kexueshangwang,评论区有具体方法) 注册账号或使用老帐号登录(我是直接用的老帐号) 注册界面 登录成功 点击在Microsoft Edge中…

LeetCode2-两数相加

大佬解法 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val x; }* }*/ class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode pre new ListNode(0);ListNo…

YOLOv8原创改进:最新原创WIoU_NMS改进点,改进有效可以直接当做自己的原创改进点来写,提升网络模型性能精度

💡该教程为属于《芒果书》📚系列,包含大量的原创首发改进方式, 所有文章都是全网首发原创改进内容🚀 💡本篇文章为YOLOv8独家原创改进:独家首发最新原创WIoU_NMS改进点,改进有效可以直接当做自己的原创改进点来写,提升网络模型性能精度。 💡对自己数据集改进有效…

langchain 之 Tools 多案例使用(一)

原文:langchain 之 Tools 多案例使用(一) - 简书 ATTENTION: 如果采用 openai 的接口,需要走代理,本文采用 proxychains 进行设置。开启 debug 模式后,能看到更多的输出信息。 import langchain langcha…

黑马程序员微服务 分布式搜索引擎3

分布式搜索引擎03 0.学习目标 1.数据聚合 **聚合(aggregations)**可以让我们极其方便的实现对数据的统计、分析、运算。例如: 什么品牌的手机最受欢迎?这些手机的平均价格、最高价格、最低价格?这些手机每月的销售…

CentOS to 浪潮信息 KeyarchOS 迁移体验与优化建议

浪潮信息KeyarchOS简介 KeyarchOS即云峦操作系统(简称KOS), 是浪潮信息研发的一款面向政企、金融等企业级用户的 Linux 服务器操作系统。它基于Linux内核、龙蜥等开源技术,支持x86、ARM 等主流架构处理器,其稳定性、安全性、兼容性和性能等核心能力均已…

京东账单导出的手工操作

文章目录 京东账单导出的手工操作概述笔记备注备注END 京东账单导出的手工操作 概述 在京东网页版找不到账单导出的操作. 在手机京东中可以导出账单. 当前京东APP的导出实现有点bug, 在输入验证码后, 发送邮件. 可是显示验证码失败, 但是已经发了邮件. 可能是因为发送成功提示…

requests库进行HTTP请求时,有时需要传递cookies参数

在使用requests库进行HTTP请求时,有时需要传递cookies参数。但是,requests库的cookies参数只能接受CookieJar对象,而不能接受字典等其他类型的cookies。 在requests库中增加对字典类型的cookies支持,使其能够接受字典类型的cooki…

IntelliJ IDEA启动一个普通的java web项目的配置

原创/朱季谦 这是我很久以前刚开始用IntelliJ IDEA时记录的笔记,应该是五年前的一篇笔记了。正好赶上最近离职了,可以有比较多的时间把以前的记录整理一下,可以让刚接触到IntelliJ IDEA的童鞋学习如何在IntelliJ IDEA引入一个单机版的jar形式…

第三篇 《随机点名答题系统》——人员管理详解(类抽奖系统、在线答题系统、线上答题系统、在线点名系统、线上点名系统、在线考试系统、线上考试系统)

目录 1.功能需求 2.数据库设计 3.流程设计 4.关键代码 4.1.人员分组 4.1.1数据请求示意图 4.1.2添加组别(login.php)数据请求代码 4.1.3编辑组别(login.php)数据请求代码 4.1.4加入分组(login.php&#xff09…

安装包管理工具-Yarn

一、介绍与安装 1.1 介绍 Yarn是一款功能包管理工具,与npm(npm:Node.js 的包管理器 npm,是目前最流行的Node.js 的包管理器。)类似。有着FAST(快速的), RELIABLE( RELIABLE 可信赖的), AND SECURE DEPENDENCY MANAGEMENT(安全依赖关系管理)的特点。 Yarn官网 1.2…

Git常用规范

分支命名规范 Git分支命名规范可以根据具体的项目和团队的需要而有所不同,但是以下是一些常见的规范: 主分支(master/main):这个分支通常是主要的稳定分支,它包含了当前生产环境的代码。在一些项目中&…

【2016年数据结构真题】

已知由n&#xff08;M>2&#xff09;个正整数构成的集合A{a<k<n},将其划分为两个不相交的子集A1 和A2&#xff0c;元素个数分别是n1和n2&#xff0c;A1和A2中的元素之和分别为S1和S2。设计一个尽可能高效的划分算法&#xff0c;满足|n1-n2|最小且|s1-s2|最大。要求…

requests 2.13.0 版本的 https 连接慢漏提示

# 解决方案 requests 2.13.0 版本的 https 连接慢漏问题 问题背景&#xff1a;在使用requests 2.13.0版本时&#xff0c;发现存在一个缓慢的泄漏问题。这个问题只在使用https连接时出现。经过调查&#xff0c;发现这个问题与pyOpenSSL的使用有关。在使用pyOpenSSL与requests 2.…

001 opencv addWeighted

目录 一、环境 二、addWeighted函数 三、代码演示 一、环境 本文使用环境为&#xff1a; Windows10Python 3.9.17opencv-python 4.8.0.74 二、addWeighted函数 OpenCV中的cv.addWeighted函数是一个用于图像叠加的函数&#xff0c;它可以将两个具有相同尺寸和类型的图像按…

飞天使-django之数据库简介

文章目录 增删改查解决数据库不能存储中文问题创建表数据类型表的基本操作主键唯一键 unique外键实战 增删改查 四个常用的语句查询 : insert delete update select insert into student(Sno,name) values(95001,"张三") delete from student where name张三 upda…

分类预测 | Matlab实现PSO-GRU-Attention粒子群算法优化门控循环单元融合注意力机制多特征分类预测

分类预测 | Matlab实现PSO-GRU-Attention粒子群算法优化门控循环单元融合注意力机制多特征分类预测 目录 分类预测 | Matlab实现PSO-GRU-Attention粒子群算法优化门控循环单元融合注意力机制多特征分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现PSO…

Java获取Jar、War包路径,并生成可编辑修改的本地配置文件

前言 本地的可修改配置文件的编写理应是一个很常用的功能&#xff0c;但由于数据库的存在&#xff0c;它鲜少被提及&#xff0c;大多数我们直接存储到数据库中了。 以至于现今&#xff0c;除了没接触数据库的新手时常使用它以外&#xff0c;它没有太多的出场机会。 也因此&am…