PixarAnimationStudios/OpenUSD
多媒体与设计面向图形应用的 C++ 场景描述系统,用于创作、读取和流式传输带时间采样的 3D 场景。
项目介绍
Universal Scene Description(USD)是一个 C++ 系统,用于创作、读取和流式传输带时间采样的场景描述,让不同图形应用之间能够交换复杂的 3D 场景。项目由 Pixar 开发,提供核心库,并可选包含成像组件、Python 绑定和 usdview 查看工具。它适合搭建 3D 内容管线的工具工程师、需要整合多个 DCC 工具的团队,以及要在应用中嵌入场景交换能力的开发者。
USD 主要在 Linux(CentOS 7)上开发,同时也构建并支持 macOS 和 Windows。项目可以构建 iOS、visionOS 和 WebAssembly 版本,但 Apple 嵌入式构建不包含 Python 绑定和命令行工具,Wasm 构建只产出静态库,也没有命令行工具。
构建与体验
准备 C/C++ 编译器、CMake 和 Intel TBB。Python 绑定和 usdview 还需要 Python、PyOpenGL 以及 PySide6/PySide2。克隆仓库后,使用构建脚本把 USD 安装到源码目录之外的路径:
git clone https://github.com/PixarAnimationStudios/OpenUSD
python OpenUSD/build_scripts/build_usd.py /path/to/my_usd_install_dir
脚本会下载并构建所需依赖,然后构建并安装 USD。Windows 上需要从对应版本的 x64 或 ARM64 Native Tools 命令提示符运行,并把目标目录写成 C:\path\to\my_usd_install_dir 这样的路径;ARM64EC 暂不兼容,ARM64 上暂不支持 usdview。要交叉编译 iOS 或 visionOS 版本,需要同时加上 --build-target iOS 或 --build-target visionOS 以及 --build-monolithic。
脚本结束后,按它输出的提示设置环境变量,然后打开示例资产:
usdview OpenUSD/extras/usd/tutorials/convertingLayerFormats/Sphere.usda
直接使用 CMake 配置、启用额外组件以及查询依赖版本,可参考高级构建配置和经过测试的版本。
使用约束
成像组件依赖 OpenSubdiv,OpenEXR、OpenImageIO、OpenColorIO、OSL 和 Ptex 为可选项。构建脚本按源码目录之外的安装位置设计,直接安装到克隆仓库目录未经测试。Python 绑定需要 Python,usdview 还需要 PySide6 或 PySide2 以及 PyOpenGL。Apple 框架构建仍属实验性,要求单体构建,目前不支持通用 macOS framework。
HotRepo 点评
在 2026-11-02 当周的 C++ 周榜中,OpenUSD 新增 39 个 Star,位列该榜第 8 名;仓库累计为 7,610 个 Star、1,476 个 Fork。这条单次快照说明它在 C++ 社区仍有关注度,但不足以判断长期趋势。结合项目定位——一个跨应用场景交换格式,并附带绑定和查看工具——对评估它的团队来说,上述构建与部署条件才是采用时的主要成本。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。