无用的前言
近两年关于 Omniverse 的宣传一直很多,可我一直没去了解,连它是个啥都不知道。最近正好有契机需要了解它,于是我今天抽时间看了些它的官方介绍,并按照自己的理解梳理在这里。
官方资料索引
Omniverse 官网主页:https://www.nvidia.com/en-us/omniverse/
Omniverse 文档主页:https://docs.omniverse.nvidia.com/
B站 NVIDIA 官方账号发布的 Omniverse平台概述(中文):Omniverse平台概述 - 第1部分:Omniverse系列简介_哔哩哔哩_bilibili
通用场景描述(OpenUSD)- 四大超强功能开启体验之旅_哔哩哔哩_bilibili
(其实,我认为官方的资料已经够好。或许自己去看官方资料,比看我这里的梳理会更有帮助)
Omniverse是什么?它想要帮助我们什么?
主页上是这样概括的:
也就是说:Omniverse 是一个平台,它可以连接/开发基于USD的3D应用/工作流。
接着,它从 “创作者” 与 “开发者” 的角度说明了它如何提供帮助
对于创作者
官方这样概括:
也就是说:Omniverse 将作为一个中心连接已有的3D应用/工作流,让创作者能以实时同步的方式进行创作,而这也借助了USD的力量。
对于开发者
官方这样概括:
也就是说:它让开发者可以用相对少的代码开发自定义的扩展、工具、可加速你3D工作流的微服务等等。
官方文档:开发者指南概述 中指出,开发者可以开发:
- 扩展:能增强应用程序能力与行为的扩展。
- 应用程序:为特定领域和工作流程量身定制的应用程序。
- 服务: 高度定制的USD工作流中的一些后台(无界面的)处理。
- 连接器:作为将第三方应用程序连接到 Omniverse 的“桥梁”。
Omniverse的组成部分
官方文档:平台总览中指出Omniverse有下面五个核心的组成部分:
Omniverse平台概述 - 第2部分:Omniverse平台结构_哔哩哔哩_bilibili 中对各部分也进行了介绍,此3分钟的视频对于入门者而言非常有帮助。
此外还有两个额外的组成部分:Omniverse 启动器,Omniverse 插件。
下面逐个梳理各个组成部分的基础概念。
1★. Nucleus :中央数据库
正如其名字所提示那样,它算是 Omniverse 的核心。
官方介绍中说:你可以将 Nucleus 视为可存储3D内容的私有云。
Nucleus 提供了:
- 用户身份认证
- 协作服务
- 数据存储
Nucleus 有两种方式建立:
- 企业 Nucleus 服务器:在本地或云服务提供商进行企业部署。
- 工作站:提供了一套全面的服务来评估和使用 Nucleus,适用于那些想要在本地尝试 Omniverse 并与其他用户协作的用户,支持最多 2 位用户的个人或团队。
2★. Kit :开发者工具包
算是 Omniverse 上所有应用的支柱。
它是开发者面对的SDK,它提供了:
- 开发者框架
- 可以构建特定于工作流的应用程序
- 很高的扩展性
官方文档指出了 Kit 的几个主要组成部分:
- USD/Hydra
- Omniverse 客户端库:Omniverse 客户端在加载和保存资源(例如 USD、MDL 和纹理)时用来与 Omniverse 服务器以及本地文件系统进行通信的库
- Carbonite:Carbonite SDK 提供所有 Omniverse 应用程序的核心功能
- Omniverse RTX 渲染器
- 脚本(Kit附带一个版本的 python (当前为 3.7),你可以在基于Kit的应用程序中运行任意 python 脚本,可以执行多种功能)
- UI工具包
3★. Connect:连接其他应用的桥梁
Omniverse Connect 将其他应用连接到Omniverse上,目前很多应用已经连接:
开发者也可以使用SDK创建定制的连接器。
其实对于创作者,实际接触到的主要就是 Nucleus、连接器、其他应用 这三部分
4. RTX 渲染器
基于 NVIDIA RTX™ 的高级多 GPU 渲染器,支持实时光线追踪和路径追踪渲染。
5. 仿真模拟
一套功能强大的工具和 SDK,基于物理准确性来模拟世界。
6*. 启动器
用于下载、安装和更新 Omniverse 应用程序、扩展程序和连接器的本机客户端。
可以在官网上下载
7*. 扩展插件
基于 Omniverse Kit 的插件。开发人员使用扩展插件来创建、修改、扩展他们的工具和工作流,以此来提高工作效率。