英文原文:https://docs.omniverse.nvidia.com/kit/docs/kit-manual/latest/guide/kit_architecture.html
Kit是一个构建应用程序和体验的平台。 它们可能有也可能没有太多共同之处。 其中一些可能使用RTX,omni.ui或其他库来创建丰富的应用程序,其他库可能是无窗口的服务(例如离线处理USD文件的服务)。 为了实现这一目标,Kit的目标是极其模块化:一切都是扩展。
扩展
扩展是在运行时加载的唯一命名和版本控制的包。 它可以具有以下任何或所有属性:
- 包含python代码。
- 包含共享库和/或Carbonite插件。
- 提供C++API。
- 提供Python API。
- 依赖于其他扩展。
- 可重新加载(可以在运行时卸载,更改和再次加载)。
它是基于套件的应用程序(如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
箭头是扩展依赖项。
-
用户编写一个扩展user.tool,该扩展仅依赖于omni.kit.usd和omni.kit.app。
-
用户运行Kit kit.exe --enable user.tool
请注意,仅指定了一个扩展名。 omni.kit.app 将通过解决依赖关系自动找出需要哪些扩展,并以正确的顺序加载和启动它们。
例如,user.tool 可以解析命令行参数,进行一些处理,然后退出。
GUI CLI utility
对 UI 的依赖展开了所需扩展的整个树。