Technical Walkthrough

作为元宇宙语言的通用场景描述

 

在过去几十年中,互联网从根本上改变了世界,并启动了我们消费和共享信息方式的巨大变革。这一转变如此彻底,以至于今天,高质量的网络存在对几乎所有的企业都至关重要,而与网络互动是现代世界有效运作的核心。

Web 已经从静态文档演变为涉及丰富交互媒体的动态应用程序。然而,尽管我们生活在一个 3D 世界中,网络仍然是二维的。

现在,我们发现自己正处于网络下一个重大进步的门槛: 3D 互联网或互联网的出现 元宇宙 Metaverse 将虚拟世界连接在一起,而不是将 2D 页面连接在一起。网站将成为相互连接的 3D 空间,类似于我们每天生活和体验的世界。

这些虚拟世界中的许多将是 数字孪生 反映真实世界,实时链接和同步。其他的将被设计用于娱乐、社交、游戏、学习、协作或商业。

无论任何一个网站的目的是什么,使整个 Metaverse 成功的因素都将是使 2D web 如此成功的因素:基于开放标准和协议的通用互操作性。

创建元宇宙所需的最基本标准是虚拟世界的描述。在 NVIDIA ,我们相信该标准的第一个版本已经存在。它是 通用场景描述( USD ) – 一个开放的、可扩展的生态系统,用于描述、合成、模拟和协作 3D 世界,最初由 Pixar 动画工作室发明。

2015 年开源, USD 现在被广泛应用于各种行业,不仅在媒体和娱乐领域,还包括建筑、工程、设计、制造、零售、科学计算和机器人等领域。

USD 不仅仅是一种文件格式

USD 是一个场景描述: 用于创建、表示和修改虚拟世界的一组数据结构和 API 。代表性是丰富的。它不仅支持几何体、相机、灯光和材质等虚拟世界的基础知识,还支持它们之间的各种关系,包括属性继承、实例化和专门化。

它包括扩展到大型数据集所需的功能,如延迟加载和有效检索时间采样数据。它具有极大的可扩展性,允许用户自定义数据模式、输入和输出格式以及查找资产的方法。简而言之, USD 涵盖了皮克斯制作故事片所需的非常广泛的要求。

Image showing the layered workflow for a factory assembly line simulation.
图 1. USD 如何为行业特定用例启用分层工作流的可视化表示

Layers 可能是 USD 最具创新性的功能。从概念上讲,它们与 Adobe Photoshop 中的层有一些相似之处:最终的合成是按顺序组合所有层的效果的结果。但是 USD 层不是修改图像的像素,比如 Photoshop 层,而是修改合成场景的属性。最重要的是,它们提供了强大的协作机制。

不同的用户可以在不同的层上修改合成的场景,他们的编辑将是非破坏性的。较强的层将在合成中获胜,但较弱层的数据仍然可以访问。除了直接协作之外,层提供的非破坏性修改他人所做工作的能力使传统 web 变得如此成功。

Image showing the layers of a Brownstone room interior created with USD: the empty room, the staged room, different seating material covers, and alternate furniture layouts and colors.
图 2.用 USD 创建的褐石房间内部的层:空房间、舞台房间和其他房间阀座材料盖,以及替代家具布局和颜色

NVIDIA 认为 USD 应作为 metaverse 的 HTML :网站内容的声明性规范。但正如 HTML 从 HTML1 的有限静态文档发展到 HTML5 的动态应用程序一样,显然 USD 需要发展以满足元宇宙的需求。为了加速这一发展, NVIDIA 已经在 USD 生态系统中添加了许多新功能:

在短期内, NVIDIA 正在开发:

  • glTF 互操作性: glTF 文件格式插件将允许 USD 场景直接引用 glTF 资产。这意味着已经在使用 glTF 的用户可以利用 USD 的合成和协作功能,而无需更改其现有资产。
  • 地理空间模式( WGS84 ): NVIDIA 正在 USD 中开发地理空间模式和运行时行为,以支持地理空间坐标的 WGS84 标准。这将有助于全保真度数字孪生模型,需要结合地球表面的曲率。
  • 国际字符( UTF-8 )支持: NVIDIA 正在与 Pixar 合作,为 USD 添加对 UTF-8 标识符的支持,从而实现来自世界各地的内容的完全交换。
  • USD 兼容性测试和认证套件:为了进一步加快 USD 的开发和采用, NVIDIA 正在为 USD 兼容性测试和认证构建一个开源套件。开发人员将能够测试其 USD 的构建,并证明其自定义 USD 组件产生预期结果。

从长远来看, NVIDIA 正在与合作伙伴合作,以填补 USD 中剩余的一些较大差距:

  • 高速增量更新: USD 不是为高速动态场景更新而设计的,但数字双模拟将需要此功能。 NVIDIA 正在 USD 的基础上开发更多的库,可以实现更高的更新率,以支持实时模拟。
  • 实时程序主义: USD 目前的状态几乎完全是声明性的。 USD 表示中的属性和值在很大程度上描述了有关虚拟世界的事实。 NVIDIA 已经开始通过一个名为 全向图 .
  • 与浏览器的兼容性答:今天, USD 是基于 C ++/ Python 的,但 web 浏览器不是。为了让每个人、任何地方都可以访问,虚拟世界需要能够在 web 浏览器中运行。 NVIDIA 将致力于确保使用 JavaScript 绑定的正确 WebAssembly 构建可用,以使 USD 成为一个有吸引力的开发选项,而在浏览器内部运行是最好的方法。
  • 物联网数据的实时流传输:工业虚拟世界和实时数字孪生需要物联网数据的实时流。 NVIDIA 正在构建与物联网数据流协议的 USD 连接。

工业和工业领域的公司 制造业 – 包括爱立信( Ericsson )、克罗格( Kroger )和沃尔沃( Volvo )在内的公司正在采用 USD 来实现其 3D 虚拟世界和资产项目。

使用 USD 开始构建虚拟世界

视频概述 是一个用于全设计保真度 3D 仿真工作流的可扩展计算平台,也是一个用于构建基于 USD 的 metaverse 应用程序的工具包。 Omniverse 作为一个 USD 引擎和开放式工具包从头开始构建,用于构建定制、可互操作的三维管道。

您可以免费在线访问 NVIDIA 提供的大量 USD 资源。一个好的起点是 NVIDIA 的网络中心 USD 资源 .要通过 USD A 和 USD 中的示例逐步学习 USD 的基础知识,请注册 USD DLI 课程 .

使用预编译的 USD 二进制文件很容易进行 USD 实验。这些 Windows / Linux 发行版将帮助您开始开发利用 USD 的工具,或者开始使用 USD 视图 Omniverse 发射器 对于 Python 开发人员来说,开始读写 USD 层的最简单方法是使用 USD Core Python Package.

如果您要查找 USD 样本数据,请参阅 示例 USD 场景 包括一个基于物理的弹珠迷你游戏示例和一个阁楼场景,该场景使用 Omniverse 渲染的 MDL 材质。此外, USD SimReady 内容包括为仿真工作流准备的来自不同行业的组件模型。

在中了解更多信息 Omniverse 资源中心 ,其中详细介绍了开发人员如何为平台构建基于 USD 的自定义应用程序和扩展。

跟随 Omniverse 上 一款图片分享应用 , 啁啾 , YouTube 中等的 以获得额外的资源和灵感。查看 Omniverse 论坛 加入我们的团队 Discord 服务器 痉挛 与社区聊天。

输入 NVIDIA #扩展 Omniverse 竞赛 使用在中创建的扩展 Omniverse 代码 为了有机会赢得 NVIDIA RTX GPU 。 在 SIGGRAPH 2022 加入 NVIDIA 要了解有关 Omniverse 最新公告的更多信息,请观看点播特别地址。不要错过纪录片的全球首映式,合作的艺术: NVIDIA 、 Omniverse 和 GTC太平洋时间 8 月 10 日上午 10 点。