英文原文:https://docs.omniverse.nvidia.com/kit/docs/kit-manual/latest/guide/extensions_usd_schema.html
USD 库是omni.usd.libs 扩展的一部分,并作为第一个扩展之一加载,以确保 USD dll 可用于其他扩展。
USD 模式本身都是一个单独的扩展,可以成为任何存储库的一部分。 USD 架构扩展在omni.usd.libs之后加载,最好在omni.usd之前加载。
架构扩展 config.toml 文件的示例:
[core]
reloadable = false
# 在开始时加载,加载顺序为 -100 的所有模式(加载顺序为 -1000 的 USD 库)
order = -100
[package]
category = "Simulation"
keywords = ["physics", "usd"]
# pxr modules to load
[[python.module]]
name = "pxr.UsdPhysics"
# python loader module
[[python.module]]
name = "usd.physics.schema"
# pxr libraries to be preloaded
[[native.library]]
path = "bin/${lib_prefix}usdPhysics${lib_ext}"
架构扩展包含 pxr::Schema、其插件注册表和 config.toml 定义文件。 此外,它还包含一个加载模块omni/schema/_schema_name,该模块确实具有包含插件注册表代码的python init.py 文件。
例子:
import os
from pxr import Plug
pluginsRoot = os.path.join(os.path.dirname(__file__), '../../../plugins')
physicsSchemaPath = pluginsRoot + '/UsdPhysics/resources'
Plug.Registry().RegisterPlugins(physicsSchemaPath)