[Omniverse] Omniverse Kit - 架构

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

  Kit是一个构建应用程序和体验的平台。 它们可能有也可能没有太多共同之处。 其中一些可能使用RTX,omni.ui或其他库来创建丰富的应用程序,其他库可能是无窗口的服务(例如离线处理USD文件的服务)。 为了实现这一目标,Kit的目标是极其模块化:一切都是扩展。

扩展

  扩展是在运行时加载的唯一命名和版本控制的包。 它可以具有以下任何或所有属性:

  1. 包含python代码。
  2. 包含共享库和/或Carbonite插件。
  3. 提供C++API。
  4. 提供Python API。
  5. 依赖于其他扩展。
  6. 可重新加载(可以在运行时卸载,更改和再次加载)。

  它是基于套件的应用程序(如Create)的基本构建块。 更多信息在指南的扩展部分.

Kit Kernel (kit.exe/IApp)

  是运行扩展所需的最小核心。 它是任何基于套件的应用程序的入口点。 它包括扩展管理器和基本接口。 它是把一切联系在一起的核心。

omni.kit.app (omni::kit::IApp)

  omni.kit.app 是任何扩展都可以使用的基本接口,并提供了一组最小的 Carbonite 插件来加载和设置扩展。 它是Kit Kernel 的主要前端部分。

C++: omni::kit::IApp python: omni.kit.app

它包含了:

  • Carbonite框架启动
  • 扩展管理器
  • event系统
  • 更新循环
  • 设置
  • Python 上下文/运行时(已编辑)

它可以从 Kit 可执行文件 (kit.exe / kit) 或 python 运行。

包含的扩展

  Kit SDK 附带了许多包含的扩展。 更多扩展是在 Kit SDK 之外开发的,并使用扩展注册表提供。

NOTE
尝试 kit.exe --list-exts 然后启用其中之一,例如 kit.exe --enable omni.usd

不同模式示例

CLI utility

在这里插入图片描述

箭头是扩展依赖项。

  1. 用户编写一个扩展user.tool,该扩展仅依赖于omni.kit.usd和omni.kit.app。

  2. 用户运行Kit kit.exe --enable user.tool

  请注意,仅指定了一个扩展名。 omni.kit.app 将通过解决依赖关系自动找出需要哪些扩展,并以正确的顺序加载和启动它们。

  例如,user.tool 可以解析命令行参数,进行一些处理,然后退出。

GUI CLI utility

在这里插入图片描述

对 UI 的依赖展开了所需扩展的整个树。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值