Omniverse 开发者资源中心

开始使用以下资源在 Omniverse 平台上进行开发。

开发者简介

NVIDIA Omniverse 致力于跨不同应用和 3D 生态系统供应商实现通用互操作性。它提供高效的实时场景更新,并基于开放标准和协议设计而成。Omniverse 平台充当枢纽的角色,使新功能可以作为微服务开放给所有连接的客户端和应用。


以下视频概述了 Omniverse 及其如何在其中开发自定义工具和应用。


  • 00:00 – 平台概述
  • 01:25 – 技术栈
  • 03:17 – 视频教程
  • 03:38 – Kit 扩展程序系统
  • 05:16 – 扩展程序管理器
  • 05:30 – 最简单的扩展程序
  • 05:50 – 扩展程序依赖项
  • 06:31 – Kit 应用
  • 06:57 – Python 扩展程序
  • 07:21 – Kit SDK 示例
  • 08:36 – Omni.UI
  • 09:32 – Omni.UI 文档
  • 10:23 – Omni.UI 动态语法
  • 11:54 – Omni.UI 图形框架
  • 12:26 – 模型-视图-控制器模式
  • 13:04 – 完整 M=model API
  • 13:18 – 示例应用
  • 14:01 – 重要 API – treeview 小组件
  • 15:24 – 重要 API – 套件中的 Web
  • 16:24 – 重要 API – Web 串流
  • 17:50 – 基于 Nucleus 的微服务
  • 18:42 – 基于 Kit 的微服务
  • 19:01 – Omni.kit.controlport
  • 19:36 – 支持渲染的 Kit 微服务
  • 20:00 – 技术预览 – 快速搜索
  • 22:02 – 技术预览 – Omni.UI 检查器
  • 24:00 – Omniverse Kit 回顾

现在,您已经对平台及其组件的概述有了简要了解,接下来我们一起学习 Omniverse 的核心 Universal Scene Description (USD)。





Omniverse Code

Omniverse Code

Omniverse Code 是一款 Omniverse 应用,可作为集成开发环境 (IDE),供开发者和高级用户轻松构建自己的 Omniverse 扩展程序、应用或微服务,可从 Omniverse Launcher下载。

Omniverse Code 包含 Omniverse Kit 软件开发套件 (SDK) 运行时,并在易于导航的界面中提供基础工具、模板和文档。这使得您可以更轻松地利用 Omniverse Kit SDK 的强大功能开发基于 Omniverse 的项目。

以下视频介绍 Omniverse Code 的标准配置。它还简要介绍了 Omniverse Code 的核心功能、主要特性以及即将发布的更新。






Universal Scene Description (USD)

Universal Scene Description (USD)

Omniverse 中资产的主要表示方式采用 Pixar 的开源 Universal Scene Description (USD) 表示法。USD 还是一种强大的框架和场景表示,可利用其所带有的 API 支持复杂的属性继承、实例化、分层、延迟加载以及其他各类主要特性。

下文重点介绍 USD,包含从创建到当前在 Omniverse 中的实施,及其在许多行业中的示例。如需了解详情,请参阅我们的 USD 文档


  • 02:40 – 创建 USD 的原因
  • 04:40 – Presto 和 TidScene
  • 06:31 – USD 要求
  • 07:27 – Hydra
  • 08:11 – Presto(Racoon 示例)
  • 08:48 – Presto(Dory 示例)
  • 09:23 – NVIDIA DRIVE 示例
  • 10:40 – USD 是开源的
  • 12:02 – SIGGRAPH 2016 演示
  • 12:57 – USD GitHub
  • 13:25 – Autodesk USD 支持
  • 13:50 – SideFX USD 支持
  • 14:34 – 虚幻引擎 USD 支持
  • 15:04 – Apple USD 支持
  • 16:06 – 实操演示
  • 17:05 – USD 资源
  • 17:32 – Jupyter Notebook 简介
  • 18:55 – 创建 USD 层
  • 21:00 – 引用和覆盖
  • 22:46 – USD 是 Omniverse 的核心
  • 23:28 – Omniverse 示例
  • 24:30 – Omniverse 中的 USD 变体示例
  • 25:25 – Omniverse 中的复杂示例

教程

使用 USD 实现协作式 3D 工作流入门

在本自定进度课程中,参与者将学习如何使用人类可读取的 Universal Scene Description ASCII (.USDA) 文件生成场景。完成课程后,参与者能够在 USD 框架中创建自己的场景,并为在 Omniverse、Maya、Unity 和虚幻引擎等应用中使用该场景奠定基础。

本次培训包括两部分:

  • USD 基础:USD 基础知识介绍(无需具备编程方面的知识)。
  • 高级 USD:演示如何使用 Python 生成 USD 文件。



试用课程


示例和资源

USD 场景,使用在 Omniverse 中渲染的 MDL 材质

NVIDIA USD Attic 样本

此作品获得
知识共享署名 4.0 国际公共许可的许可。

下载
ALab USD 样本场景

Animal Logic – USD ALab

USD ALab 数据集是 Animal Logic 对现实世界生产和流程概念的说明和实施。可下载三个内容,包括纹理和烘焙程序。

从 Animal Logic 下载

NVIDIA USD 页面探索更多 USD 资源,包括示例文件、教程视频以及一系列第三方参考和指南。

探索 USD 资源

连接到 Omniverse

连接器为各类应用打开互连门户

连接 Omniverse 平台的方法有很多。第一种是将资产导入 Nucleus,转换为 USD,然后将其提供给所连接的应用。

第二种是使用 Omniverse Drive 连接本地文件,并使用一些应用的功能以便在文件更改时进行实时更新。

第三种是使用双向或单向 Omniverse 连接器(即支持客户端应用连接到 Nucleus 的插件),以及发布和订阅个人资产和整个世界。根据其保真度,Omniverse 连接器可以在互联应用之间实现实时同步的发布-订阅协作。


导入和导出

请注意,Omniverse 连接器适合行业应用,但并不是使用 Omniverse 的必要条件。通过应用内容浏览器(包括启动器协作选项卡中的 Nucleus)或 Omniverse Drive,您可以将热门格式导入或导出 Omniverse。

Omniverse 目前支持导出和导入 FBX、GLB、gLTF、OBJ、USDZ 和 USD 格式。
而 Alembic、E57、IGES、LXO、MD5 和 STP 格式目前仅支持导入至 Omniverse。


支持的格式一直在增加。




资产导入程序文档

Omniverse Drive

对于原生支持 USD、MDL 和/或纹理导出的第三方应用,用户可以使用 Omniverse Drive。这是一个本地安装的硬盘驱动器,无论 Nucleus 是通过工作站还是企业服务器部署,它都可与 Omniverse Nucleus 同步。通过将第三方应用与 Omniverse Drive 结合使用,可以提供与单向 Omniverse 连接器类似的功能。这表示用户可以直接在 Windows Explorer 中复制、读取和写入文件。它还可用于直接从应用中打开和保存。对于只能将资产导出到本地磁盘的现有工具或者 Omniverse 连接器不支持的现有工具(例如,Adobe Substance 应用、SideFX Houdini、Maxon Cinema4D 和 Pixologic Zbrush),这种方式很有用。




Omniverse Drive Connect 文档

Omniverse 连接器

Omniverse Connect 库以插件(或 Omniverse 连接器)的形式分布,使得客户端应用能够连接到 Nucleus,并且发布和订阅单个资产和整个世界。双向 Omniverse 连接器具有超高保真度,能够在第三方应用之间实现实时更新。

connectors_001.png


Omniverse 连接器文档



如何构建 Omniverse 连接器

使用 Connect SDK、Pixar USD 的预构建源代码示例、以及 Omniverse Client Library API 构建您自己的 NVIDIA Omniverse 连接器。

该示例演示如何:

  • 连接到 Omniverse 服务器
  • 创建 USD 场景
  • 创建多边形框并将其添加到场景
  • 将 MDL 材质及其纹理上传到 Omniverse 服务器
  • 将 MDL 和 USD 预览表面材质绑定到边框
  • 为场景添加光线
  • 随着实时更新移动和旋转边框
  • 断开与 Omniverse 服务器的连接
  • 打印详细的 Omniverse 日志
  • 打开现有场景并找到可进行实时编辑的网格

安装

可在启动程序页面“Exchange”(交换)选项卡的“Connectors”(连接器)部分安装 Connect SDK。


connectors_sample_001.png


视频教程

本视频将介绍如何设置 USD 和 Omniverse Client Library 依赖项,以及如何通过 Omniverse Connect 示例中的项目设置来创建应用。该应用是一个非常简单的 USD 读取器,可在 Nucleus 服务器上打开 USD 文件,并在节点路径穿过基元时打印节点路径。




连接器示例文档连接器论坛支持



扩展程序、应用和微服务

Omniverse Kit

Omniverse Kit 并非单体应用,而是由一些扩展程序组成。这些扩展程序可作为基础模组以多种方式组装,进而助力创建不同类型的应用。由于均采用 Python 编写,所有用户界面 (UI) 元素、工作流和通用特性具有很高的可定制性。

Omniverse Kit 是一个用于构建原生 Omniverse 应用和微服务的工具包,基于基础框架而构建。该框架可通过一组轻量级扩展程序提供各类功能。这些独立扩展程序是用 Python 或 C++ 语言编写的插件。

经过设计,Kit 旨在成为一个灵活且可扩展的开发平台,主要面向应用和微服务。可在无外设模式下创建微服务,也可通过用户界面创建微服务。用户界面应用可完全使用 UI 引擎编写,从而获得完全的可定制性。

Omniverse Kit

Omniverse Kit 文档

扩展程序

Omniverse 扩展程序是专为完成特定任务而构建的小型代码片段,即 Omniverse 应用的基础模组。最简单的扩展程序形式是包含配置文件 (extension.toml) 的文件夹,而最复杂的扩展程序则包括大量 Python 代码、库、文档、资产和任何相关数据。

若已启用,Omniverse 扩展系统将找到并遵循配置文件的指示,其中可能包括加载 Python 模组、Carbonite 插件和共享库,或应用设置。




Omniverse 扩展程序文档

脚本

脚本是 Omniverse 的主要特性之一。它允许开发者创建复杂的仿真、自定义工作流工具以及路径追踪和/或光线追踪游戏,并将 NVIDIA Omniverse Kit 扩展到其根源和基础之外。由于脚本的扩展属性,Python API 指南已被分离出来,允许程序员不受限制地使用 Omniverse 中只与脚本相关的文档和搜索。

如果增强需求对于脚本而言过于严苛,Omniverse 则会提供基于 C++ 的 SDK,以便创建高性能扩展程序。Omniverse 的 C++ 端基于的插件模组可根据需要动态加载。这些模组可为许多 Omniverse 产品提供新功能,包括新的 UI 和繁重的计算。

Omniverse Kit 通过 Python 绑定公开了大部分功能。因此,提供了一个 API,可用于编写 Omniverse Kit 的新扩展程序或 Omniverse 的新体验。Python 绑定是将新功能添加到 Omniverse Kit 或修改现有行为的最简单方法。Python 绑定还可用于在 Omniverse Kit 中编写交互式 USD 场景的脚本部分,或以编程方式构建整个场景。


Kit Python API 文档

Omni.UI

Omni.UI 是所有 Omniverse 扩展程序和 Kit 应用的基础用户界面。Kit 还可以无外设方式运行,并可作为 Python 库运行(包含在您自己的应用栈中)。


  • 00:00 – 简介
  • 01:19 – 主要特性
  • 02:02 – 小组件
  • 02:34 – 小组件:UI.LABEL
  • 03:06 – 小组件:自定义 UI.LABEL
  • 03:26 – 小组件:UI.IMAGE
  • 03:42 – 小组件:自定义 UI.IMAGE
  • 03:51 – 小组件:UI.BUTTON
  • 03:42 – 小组件:自定义 UI.IMAGE
  • 03:51 – 小组件:UI.BUTTON
  • 03:56 – 小组件:自定义 UI.BUTTON 小组件大小
  • 04:12 – 小组件:自定义 UI.BUTTON 回调
  • 04:32 – 小组件:核心小组件列表

Omni.UI 文档

应用

Omniverse 应用由 Kit 提供支持。应用是扩展程序集合,配置后,这些扩展程序可为最终用户提供独立体验。您可以利用 NVIDIA 已经创建的数百个扩展程序,并通过创建自己的自定义扩展程序来增加功能。借助 Kit 的模组化功能,您可以轻松重复使用代码,并针对特定工作流快速创建量身定制的应用。使用我们的 Omniverse Kit 应用模板 创建自己的应用,或在应用文档中详细了解应用。




Kit 应用模板文档

微服务

Omniverse 微服务体系架构可帮助开发者构建和部署由一系列名为“服务”的模组化独立组件构成的应用。


  • 00:00 – 简介
  • 01:17 – 服务
  • 02:00 – 核心
  • 02:22 – 传输
  • 03:30 – 扩展程序
  • 03:52 – 路由器
  • 04:10 – 设施
  • 05:33 – 客户端
  • 06:35 – 示例:启动画面
  • 06:52 – 示例:缩略图生成
  • 07:30 – 示例:分布式任务执行

Omniverse Replicator 合成数据生成平台

Omniverse Replicator 是一个合成数据生成平台,为开发者提供高级框架,可实现物理精准的 3D 合成数据生成,从而加速感知网络的训练和准确性。

Replicator 可通过 USD 轻松集成和连接到现有流水线。此外,借助 Omniverse 与现有 3D 数字内容创作生态系统的连接,开发者可以轻松地从 Replicator 导入和导出素材。该平台专为简便性和可定制性而构建,用户可以在 Omniverse Code 中打开 Replicator,也可根据工作流要求快速轻松地组装自定义应用。



成为我们社区的一员

加入我们

访问教程

充分利用数百个免费教程讲座或新手培训课程,轻松上手使用 USD

资源中心

成为 Omnivore 的一员

加入我们的社区!参加我们每周在 Twitch 上的直播,在 Discord 和其他论坛上联系我们。

直播日程安排

获取技术支持

遇到问题? 您可以在论坛中发帖提问,以便获得 Omniverse 专家的快速指导,还可以参阅平台文档

论坛

参加现场培训课程

想要深入了解 NVIDIA Omniverse? 快来参加在线培训,与 FMC 的认证讲师进行交流。

立即注册

随时了解 NVIDIA Omniverse 的新动态

订阅