[Omniverse] Omniverse Kit - 概览

英文原文:https://docs.omniverse.nvidia.com/kit/docs/kit-manual/latest/guide/kit_overview.html

  Omniverse Kit 是用于构建创建和查看等Omniverse应用程序的SDK。 它也可用于开发自己的Omniverse应用程序。

它汇集了几个主要组成部分:

  • USD/Hydra (see also omni.usd)
  • Omniverse (via Omniverse client library)
  • Carbonite
  • Omniverse RTX 渲染器
  • 脚本编写
  • A UI Toolkit (omni.ui)

  作为开发人员,您可以使用这些组合来构建自己的应用程序,或者只是扩展或修改已经存在的内容。

USD/Hydra

  USD是Kit使用的主要场景描述,既用于内存/创作/运行时使用,也用作序列化格式。

  USD可以直接通过外部共享库访问。 如果您的插件通过C++使用USD,则必须链接到此库。 您还可以使用USD自己的python绑定从python中使用USD,这些绑定涵盖整个USD API(但不是所有的依赖项,如Tf,SDF等)。 我们为它生成了参考文档,请参阅pxr包。

  Hydra允许USD将其内容流式传输到任何具有Hydra场景委托的渲染器-这些渲染器包括Pixar的HDStorm(目前作为Kit的一部分附带USD软件包)以及Omniverse RTX渲染器和IRay(两者均随 Kit 一起提供)

Omni.USD

  Omni.USD(有关 API 文档,请参阅omni.usd 模块)是一个用 C++ 编写的 API,它位于 USD、Kit 的核心和 OmniClient 库之上,并提供与应用程序相关的服务,例如:

  • 事件/监听
  • 选择处理
  • 访问 Omniverse USD 音频子系统
  • 访问 Omniverse 客户端库以及处理 Omniverse 资产/URI
  • USD 层处理
  • USDContext 提供对主 USDStage 及其层以及各种 Hydra、渲染器和 Viewport 相关服务的便捷访问
  • MDL 支持
  • Python 绑定到上述所有内容,在大多数情况下使用 Python-3 异步 API

Omniverse Client Library

  这是 Omniverse 客户端(例如 Kit)在加载和保存资源(例如 USD、MDL 和纹理)时用来与 Omniverse 服务器以及本地文件系统进行通信的库。 它包含了:

  • 用于解析omniverse:// URI 的USD资产解析器
  • 一些 SDF 文件格式插件支持特殊用例,包括 Omniverse 的实时编辑模式
  • 用于在 Omniverse Nucleus 服务器上读/写/复制数据/文件和类似文件系统的查询的 API
  • 支持管理与 Omniverse 服务器的连接
  • Python 绑定到上述所有内容,在大多数情况下使用 Python-3 异步 API

Carbonite

  Carbonite SDK 提供所有 Omniverse 应用程序的核心功能。 这是一个基于 C++ 的 SDK,提供以下功能:

  • 插件管理
  • 输入处理
  • 文件访问
  • 持久设置管理
  • 声音
  • 资产加载和管理
  • 线程和任务管理
  • 图片加载
  • 本土化
  • 同步
  • 基本窗口

所有这些都是通过一个独立于平台的 API 提供的。

插件

  Carbonite插件基本上是具有C风格接口的共享库,可以动态加载和卸载。 接口按语义进行版本控制并支持向后兼容性。

  大多数插件接口都有 python 绑定,即它们可以从 python 访问。 使用 pybind11 库。 对于您自己的插件,您还可以编写 python 绑定并使其可以直接从 python 访问。

Omniverse RTX 渲染器

  如上所述,Pixar 的 Hydra 用于 USD 和 RTX 之间的接口。 这是一个架构复杂性很高的领域,因为 Kit 需要支持大量渲染器、多个自定义场景委托、多个 Hydra 引擎(以支持 GL、Vulkan、DX12)和许多其他要求,在 Kit 应用程序内提供带有 Gizmos 和其他控件的视口,所有这些都以高帧速率异步渲染

脚本编写

套件附带 python 版本(当前为 3.7)。 您可以在基于 Kit 的应用程序中运行任意 python 脚本,这些脚本可以:

  • 访问通过 python 绑定公开的所有插件
  • 访问USD Python API
  • Access Kit 仅包含 python 模块
  • 加载并访问您的 C++ Carbonite 插件

目前有3种方式运行脚本:

  • 在应用程序启动时通过传递 cmd 参数。 例如:kit.exe --exec“some_script.py”
  • 使用控制台窗口
  • 使用脚本编辑器窗口

Kit 扩展

  构建在脚本和 Carbonite 插件之上的是最高级别且可能是最关键的构建块:套件扩展。 您可以将扩展视为具有运行时启用/禁用状态的版本化包。 这些扩展可以依赖于其他扩展。

omni.ui

我们的 UI 框架 Omni.ui 构建在 Dear Imgui 之上。 用 C++ 编写,但仅公开 Python API。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值