USD Example Projects
Translated by AI, submit an issue feedback
该存储库是一系列简单的USD项目集合,每个项目都展示USD的一个特性或一组特性。
结构概览
本仓库分为六个类别:
- 功能(Features):突出显示用于USD工作的单个类或函数集。
- 概念(Concepts):在“功能”基础上扩展,提供现实世界的示例。
- 技巧(Tricks):使用USD特性的简单、孤立的想法。
- 插件(Plugins):展示如何定制USD以适应您的管道。
- 工具(Tools):用USD构建的各种特定任务脚本。
- 参考(References):查找更多有关USD及其在项目中交互的信息的有用页面。
本仓库中的每个项目都会尽可能地演示Python、C++和USDA的工作方法。
如何查看
如果概念文件夹试图展示USD特性,但需要大量代码,那么顶级README.md文件将总结重要部分。它也可能指向其他资源,以便了解更多详情。
最后,源代码文件可能包含对所展示内容的解释,这些行标记为XXX。
如何构建
C++
除非C++项目有特定说明,否则每个项目都可以通过以下命令编译和执行:
cd {some_concept_cpp_folder}/build
USD_INSTALL_ROOT=/wherever/you/installed/USD/to cmake ..
make
./run_it
USD_INSTALL_ROOT通常默认为Linux上的/usr/local/USD,但根据环境可能会有所不同。请参阅USD的构建文档以获取详细信息。
Python
Python模块始终可以通过python name_of_module.py运行。
部分
以下是按照推荐顺序查看本仓库中所有项目的链接。
功能
- 向USD文件添加注释
- 将类型设置到UsdPrim上
- 特殊化组成弧
- 使用Prim AssetInfo
- 定义可自定义的userProperties
- 编辑目标
- 值解析缓存
- 使用UsdGeomImageable和UsdGeomBBoxCache计算边界框
- 皮克斯的特殊化示例
- 在UsdPrim对象上使用“目的”
- UsdResolveInfo - 找出意见来源
- 启用调试消息并编写自己的消息
- USD阶段性能分析
- 如何使用值片段
- 使用Sdf设置时变属性
- SdfChangeBlock - 效率高的USD编写
- SdfBatchNamespaceEdit和SdfNamespaceEdit - 效率高的USD编写
- UsdStageCache - 缓存USD阶段
- TfNotice - 使用回调在阶段更改时运行函数
- TfNotice - 发送您自己的自定义回调
概念
- 有效的模型层次结构
- 理解VariantSets
- 覆盖VariantSets
- 使用较弱层修改较强层
- 如何使实例化的UsdPrim唯一
- UsdRelationship转发
- 在生产场景中使用VariantSets
- "特殊化"组成的实际示例
- "特殊化"作为备用机制
- 在当前SdfLayer中引用Prim
- 如何找到“孤儿”over
- 带有材料的网格
- 资产组合弧 - 子层、引用和有效载荷如何协同工作
技巧
- 使用C++ STL打印和修改prim
- 使用boost进行自定义遍历
- 变体自动选择 - 使用VariantSets修改其他VariantSets
- 从VariantSet复制到Prim的意见
- 查找属性的源
- 查找Prim绑定的材质(包括集合API)
- 两步导出 - 将USD阶段导出速度提高100倍
- 平展USD层堆栈
- 多有效载荷 - 是的,您可以拥有多个
- 通过VariantSets获取Prims
插件
- usdview_auto_reloader - 自动更新usdview中的层
- usdview_root_loader - 递归加载/卸载Prim的有效载荷
- usdview_purpose_swap - 使用一个按钮在代理和渲染目的之间切换
- usdview_copy_camera - 在usdview中创建表示当前视图的prim
- VariantSet备用选择
- 注册的VariantSet选择导出策略
- 添加自定义元数据
- 使用Python绑定的自定义USD架构
- 自定义ArResolver插件
工具
参考
学习
还有针对此存储库的Anki卡片组,您可以通过此处下载。
路线图
要查看未来计划添加的主题列表,请访问此维基页面。
贡献
此存储库是一个持续进行的工作。如果您希望看到某个主题被写入,请将其作为一个问题提出,以便我可以或其他人接手并处理。此外,如果您有想要贡献的内容,请提交PR。提交是欢迎的!
免责声明
请注意,这个存储库可能并没有展示在USD中做事的最佳方式。这只是我个人发现的集合。另外,随着皮克斯发布新的USD版本和学习资源,这些信息可能会过时。始终优先考虑官方指南和文档,而不是这里看到的任何内容。
结束语
已验证适用于以下环境:
- 中心OS 7.6
- Ubuntu Server 19.07
- CMake 版本 3.13.4
- GNU Make 3.82
- GCC 8.3.0