USDZ、GLB 和 glTF 的区别
简单来说: USDZ 是苹果面向 iPhone、iPad 和 Vision Pro 的单文件 AR 3D 格式;GLB 是 glTF 的单文件二进制版本,被 Android Scene Viewer、网站和大多数 3D 引擎使用。想让所有手机都能看 AR,就需要同一模型的两个文件。
并排对比
| USDZ | GLB | glTF | OBJ | |
|---|---|---|---|---|
| 开发者 | Pixar(USD)和 Apple | Khronos Group | Khronos Group | Wavefront |
| 文件构成 | 一个 zip 包 | 一个二进制文件 | JSON 加独立的二进制文件和图片 | 文本文件加 .mtl 和图片 |
| iPhone AR | 原生支持(AR Quick Look) | 不原生支持 | 不原生支持 | 不支持 |
| Android AR | 不支持 | 原生支持(Scene Viewer) | 支持 | 不支持 |
| 网页查看器 | 有限 | 支持(model-viewer、three.js、Babylon.js) | 支持 | 支持 |
| 材质 | 基于物理 | 基于物理 | 基于物理 | 基础 |
| 动画 | 支持 | 支持 | 支持 | 不支持 |
简单规则
- 只面向苹果设备:用 USDZ。
- Android、网站、Shopify、游戏引擎:用 GLB。
- 面向所有人,包括网站上的“在 AR 中查看”按钮:两个都要。使用 model-viewer,把 src 设为 GLB,把 ios-src 设为 USDZ。
- 在 3D 工具里编辑:用 glTF 或该工具自己的格式,最后再导出 GLB 和 USDZ。
为什么 glTF 和 GLB 是同一种东西的两种形态
glTF 把场景存成一个 JSON 文件,指向独立的缓冲区和贴图。GLB 则把同样的数据放进一个二进制文件。对于上传、分享和 AR,GLB 更方便,因为只需要搬运一个文件。
格式之间怎么转换
如果从照片开始,完全不需要 3D 工具:jpgtousdz 会用同一张图片,按同样的真实尺寸生成 USDZ 和 GLB。如果从现有 3D 模型开始,请使用 3D 工具(Blender、Apple Reality Converter),导出后检查尺寸,因为转换最容易出错的地方就是比例和材质设置。
常见问题
GLB 比 USDZ 好吗?
没有谁更好,它们服务的平台不同。iPhone 的 AR Quick Look 需要 USDZ,Android 的 Scene Viewer 需要 GLB 或 glTF。
iPhone 能打开 GLB 文件吗?
AR Quick Look 打不开。model-viewer 这样的网页查看器可以在浏览器里显示 GLB,在 iPhone 上还能即时转换成 USDZ,但真正的 USDZ 文件结果更可靠。
USDZ 和 GLB 哪个文件更小?
取决于内容。USDZ 没有压缩,所以同样的模型和贴图下通常会略大一些。