WWDC Quick Look 💓 By SwiftGGTeam
Create 3D workflows with USD

Create 3D workflows with USD

观看原视频

Highlight

macOS Monterey 的 Preview 和 Quick Look 内置了 Metal 加速的 Hydra Storm 渲染器,支持直接查看复杂 USD 场景、导出子资产、渲染动画到视频;同时 Maya 2022、Houdini、ZBrush 等 DCC 工具已原生集成 USD,让 3D 工作流从扫描实物到 AR 展示全程无需反复导入导出。

核心内容

3D 工作流的长期痛点

做 3D 内容的人都有过这种经历:模型在 Maya 里调好,要导出成 .obj 或 .fbx,再导入到另一个工具做材质或渲染。每一步导出都可能丢数据,材质映射错位,动画帧率不一致。更麻烦的是,这个过程通常是单向的——前期建模的人看不到最终场景里自己的模型长什么样,只能盲调。

传统格式如 .obj 只支持单个模型,材质支持有限,没有动画。.fbx 虽然功能多一些,但它是专有格式,不同版本兼容性差,而且不支持多人协作编辑同一场景。

USD 如何解决这些问题

USD(Universal Scene Description)是 Pixar 为其电影制作开发的场景描述格式。它从设计之初就考虑了三个核心需求:

协作编辑。USD 允许把场景拆成多个文件,每个文件负责场景的一部分——比如一个人负责灯光,一个人负责动画,一个人负责模型。这些文件通过引用(reference)或 payload 方式链接到主场景。每个人在自己的文件里工作,保存后主场景自动更新。(08:10

非破坏性编辑。USD 采用”叠加层”(Layer Stack)概念。你可以在一个层里做修改,而不影响原始数据。如果改错了,关掉这个层就恢复原状。这让实验性调整变得安全。(09:11

可扩展性。USD 原生支持百万级对象的场景。Pixar 的电影里一个镜头可能有数千万个几何体,USD 的架构就是为这种规模设计的。(02:36

USDZ:为 AR 优化的单文件格式

Apple 和 Pixar 合作开发了 USDZ,它是 USD 的归档包格式。USDZ 把所有资源打包成单个文件,可以直接通过 iMessage、邮件或网页分享,在 iOS 的 AR Quick Look 中直接打开查看。(02:49

Apple 提供了 Reality Converter 工具,可以把 .obj、Alembic 等格式转换成 USDZ。还有命令行工具支持批量处理资产。(03:11

详细内容

Preview 和 Quick Look 的 USD 支持

macOS Monterey 的 Preview 应用新增了完整的 USD 查看能力。(05:37

Hydra Storm 渲染器。Apple 在 Preview 中集成了 Metal 加速的 Hydra Storm 渲染器。Hydra 是 USD 的高性能渲染架构,Storm 是其中的实时渲染器。这意味着在 Mac 上打开 USD 文件看到的画面,和在其他平台用 Hydra Storm 渲染的结果是一致的。(05:23

演示中展示了一个 Pixar《玩具总动员4》的古董商场场景,包含数万个独立对象、约 3400 万个三角形,Preview 可以实时渲染和导航。(05:57

场景导航工具

  • 缩略图面板显示 USD 文件中定义的所有相机,点击即可切换到对应视角(06:22
  • 点击场景中的对象可以锁定相机跟随该对象(06:29
  • Outliner 面板列出场景中所有对象节点,支持按名称搜索(06:35
  • 找到感兴趣的对象后,可以将其保存为独立的 USD 文件(07:00

导出功能

  • 将动画 USD 场景渲染为视频文件(07:13
  • 将当前视图渲染为带 Alpha 通道的图片(07:17
  • 对于 USDZ 文件,Preview 使用 RealityKit 渲染引擎,和 iOS 的 AR Quick Look 效果一致(07:21

DCC 工具生态的 USD 集成

Maya 2022。Autodesk Maya 2022 首次原生无缝集成 USD。可以直接加载数 GB 的 USD 数据,在秒级完成。USD 数据直接集成到 Attribute Editor 和 Outliner 中,支持非破坏性编辑、变体(variants)和协作。(04:22

Apple 还与 Autodesk 合作改进了 USD 导入导出功能,包括 Blendshape 支持,以及直接在 USDZ 文件中使用纹理。(04:44

ZBrush。ZBrush 可以直接处理 USD 网格数据,将雕刻能力带入 USD 工作流。(04:07

Houdini。SideFX Houdini 原生支持 USD,可以直接加载所有 USD 文件作为原生数据,使用其强大的程序化工具生成特效。(04:57

Octane Render。OTOY 的 Octane 渲染器可以接入 Houdini 等 DCC 工具,利用 GPU 从 USD 文件直接渲染光谱正确的图像。(03:57

Multiverse。J-Cube 的 Multiverse 将非破坏性 USD 编辑能力带到 Mac,支持多 DCC 工作流,使用 Metal Hydra Storm 渲染器。(03:43

物理模拟支持

Apple、Nvidia 和 Pixar 联合开发了表示物理模拟属性的 USD schema。这个 schema 可以表示从实时 AR 物理到机器人学和电影的离线模拟所需的所有属性。(05:02

完整工作流演示:从实物到虚拟

演示展示了一个完整的 USD 工作流,制作一盘虚拟煎饼:

  1. Object Capture:用 iPhone 拍摄真实煎饼的多角度照片,生成 3D 网格和表面材质(10:27
  2. Maya 布局:在 Maya 2022 中创建 USD 文件结构,组装场景中的道具,设置相机动画(10:55
  3. ZBrush 雕刻:将捕获的模型导入 ZBrush,补充底部缺失的几何,添加更多物理细节和表面材质改进(11:30
  4. Houdini 特效:在 Houdini 中加载所有 USD 文件,使用流体模拟制作糖浆效果,添加虚拟灯光(12:10
  5. 输出
    • 通过 Reality Composer 导出为 USDZ,在 iPad 上用 AR Quick Look 查看(13:00
    • 在 Mac 的 Preview 中查看和导航场景(13:35
    • 用 Octane 渲染器制作离线光追视频(13:46

关键点:

  • 整个流程中数据始终保持 USD 格式,没有导入导出步骤
  • 每个工具编辑的是独立的 USD 文件,通过引用链接到主场景
  • 任何修改都会自动反映到所有引用该文件的地方
  • 最终输出可以是 AR、实时预览或离线渲染,数据源完全一致

核心启发

  • 做什么:为电商 App 构建 3D 商品展示流程

    • 为什么值得做:用 Object Capture 扫描实物商品,生成 USDZ 文件,用户可以直接在 AR 中查看商品尺寸和细节,降低退货率
    • 怎么开始:使用 PhotogrammetrySession API 从照片生成 USDZ,通过 QLPreviewController 在 App 中展示 AR 预览
  • 做什么:创建可协作的 3D 资产编辑工作流

    • 为什么值得做:USD 的层叠编辑让多人可以同时工作在不同层面(模型、材质、灯光),互不干扰,修改自动合并
    • 怎么开始:将场景拆分为多个 .usd 文件,使用 SdfLayerUsdReferences 建立引用关系,每个团队成员编辑独立的层
  • 做什么:在 macOS App 中集成 USD 预览功能

    • 为什么值得做:Preview 已经内置了 Metal 加速的 Hydra Storm 渲染器,可以直接利用这个能力在自定义 App 中查看 USD 内容
    • 怎么开始:Pixar 在 2021 年底通过 USD 开源项目提供了 Metal 加速的 Hydra Storm,可以集成到自己的应用中
  • 做什么:构建从 3D 扫描到打印的工作流

    • 为什么值得做:Object Capture 生成的 USD 模型可以直接在 Preview 中查看、导出子对象,再转换为 3D 打印格式
    • 怎么开始:先用 Object Capture 获取模型,在 Preview 中检查并导出需要的部分,再使用 Reality Converter 或命令行工具转换格式
  • 做什么:为设计团队搭建跨工具 3D 审查流程

    • 为什么值得做:设计师用 Maya 建模、用 Houdini 做特效、用 ZBrush 雕刻,所有人都在同一个 USD 场景上工作,项目经理可以直接在 Preview 中查看最新版本
    • 怎么开始:建立中心化的 USD 文件服务器,每个环节输出独立的 USD 层文件,主场景通过相对路径引用,Preview 打开主文件即可看到完整效果

关联 Session

评论

GitHub Issues · utterances