UltKit

OBJ转GLB转换器

把OBJ、对应的.mtl文件和所有纹理图片打包成一个GLB,可直接在浏览器、商品页面或AR查看器中加载。上传或分享模型时,再也不会出现文件之间链接断开的问题。

3D 模型转换器

或将STL, OBJ, MTL … 文件拖放到此处 ·

单个文件最大 95 MB· 最多 20 个文件· 30 分钟后删除

输出

文件在我们的服务器上处理,并在 30 分钟后删除。

使用方法

  1. 1

    上传OBJ及其配套文件

    将 .obj、.mtl 和贴图文件夹一起打成 ZIP 后上传;如果只需要无贴图的模型,也可以只上传 .obj。最多 20 个文件,每个不超过 95 MB。

  2. 2

    确认比例

    glTF 以米为单位。模型单位默认是 m,与 Blender 导出的 OBJ 一致;如果 OBJ 来自 CAD 或 3D 打印工具,请在高级设置中选择 mm。

  3. 3

    转换为GLB

    点击转换为 GLB,然后把文件拖到 model-viewer、three.js editor 或 Windows 3D Viewer 等查看器中检查效果。

OBJ 是一组文件,少一个就会出问题;GLB 则把同样的模型、材质和贴图打包进一个可供网页直接加载的文件。

带贴图的 OBJ

3 个以上文件

model.obj · model.mtl · 贴图图片

传输途中不会再丢文件

GLB 结果

1 个文件

网格、材质和贴图均已嵌入

为什么网页和AR查看器更需要GLB而不是OBJ

Khronos Group 于 2017 年发布了 glTF 2.0,作为 3D 内容的交付格式,并称它是 3D 领域的 JPEG:体积小、加载快,用于展示而非编辑。它定义了基于物理渲染的材质,包括基础色、金属度、粗糙度、法线和遮蔽贴图,规定每个单位为一米、Y 轴向上,并把几何数据存放在 GPU 几乎可以直接使用的缓冲区中。GLB 是它的二进制容器,把 JSON 描述、几何数据和图片放在同一个文件里。

OBJ 比这些都要早。它的材质来自 1990 年代初的 MTL 格式,为当时的着色模型设计,贴图则是通过相对路径查找的单独文件。只把 .obj 上传到网站,模型会显示为灰色;移动了 .mtl,贴图又会丢失。因此 Google 的 model-viewer、three.js、Babylon.js 和 Android 的 Scene Viewer 都以 GLB 为默认格式,OBJ 只是次要选择。

OBJ

Wavefront OBJ

OBJ 是 Wavefront Technologies 开发的 3D 几何格式。它是纯文本文件,列出顶点、纹理坐标、法线和面,材质和贴图则由单独的 .mtl 文件引用。几乎所有 3D 建模软件、游戏引擎和 3D 打印工具都能导入。OBJ 不支持动画、骨骼绑定或场景层级,如果 MTL 和图片文件没有放在一起,贴图就会丢失。

压缩方式
–
透明度
–
动画
不支持
发布年份
Wavefront Technologies
OBJ 转换器

GLB

glTF 二进制 (GLB)

GLB 是 glTF 2.0 的二进制形式,glTF 是 Khronos Group 于 2017 年发布的 3D 传输格式。它把几何体、PBR 材质、纹理和动画打包进一个为快速加载而设计的紧凑文件。GLB 广泛用于网页 3D、AR 查看器、Android Scene Viewer 和在线模型市场。一些较旧的桌面 3D 工具和 CAD 程序无法导入它。

压缩方式
–
透明度
–
动画
支持
发布年份
2017 · Khronos Group
GLB 转换器

人们把 OBJ 转成 GLB,是因为网页查看器、电商平台和 AR 应用需要带基于物理渲染材质的单个独立文件,而 OBJ 的网格、MTL 和零散的贴图图片是分开存放的。

准备OBJ,让GLB转换更顺利

建议避免
把 OBJ、MTL 和贴图一起放进同一个 ZIP 上传。导出 OBJ 之后再重命名贴图文件。
检查 .mtl 是按文件名引用贴图,而不是使用你电脑上的完整路径。在面向手机的模型上保留 8K 贴图。
使用 PNG 或 JPG 贴图;glTF 2.0 核心规范只支持这两种。指望仅有高光的材质在 PBR 光照下看起来完全一样。
选择正确的模型单位,让模型以真实尺寸显示。把 GLB 当作编辑用的母版;请保留源场景。

测试GLB及后续处理

发布之前,请先在查看器中打开转换结果。Windows 3D Viewer、three.js 在线编辑器和 glTF Sample Viewer 都支持拖入文件,可以看出贴图是否加载、模型朝向是否正确。如果模型是横躺的,请把向上轴设为 Y 向上后重新转换。

如果打印模型一开始是 STL 而不是 OBJ,STL 转 GLB 可以完成同样的转换,只是没有材质这一步。如果你拿到的是带有单独 .bin 和图片文件的 glTF,glTF 转 GLB 会像本页处理 OBJ 一样把它们打包。

OBJ转GLB常见问题

为什么模型在GLB查看器里大得离谱?

OBJ 中的数值是毫米,而 glTF 把每个单位都当作一米,所以 200 mm 的花瓶会变成 200 米高。请把模型单位设为 mm 后重新转换,转换器会把坐标缩放为米。

OBJ的哪些材质设置会保留到GLB中?

漫反射颜色和漫反射贴图会变成 glTF 的基础色,凹凸贴图或法线贴图会变成法线贴图,透明度也会保留。高光设置在 glTF 的金属度-粗糙度模型中没有直接对应项,只能近似处理,所以反光较强的材质之后可能需要微调粗糙度。

可以把GLB放到Shopify商品页面上吗?

可以。Shopify 支持把 GLB 文件作为 3D 商品媒体,并在可旋转的查看器中展示。Apple 设备的 AR 还需要 USDZ 版本,可以用 GLB 转 USDZ 生成。

我的纹理是4K的,GLB会不会太大不适合网页?

图片会原样嵌入,所以四张 4K 贴图就可能让文件达到几十 MB。如果模型要在手机上显示,请在打包 OBJ 之前把贴图缩小到 1024 或 2048 px;在实际观看尺寸下,模型看起来不会有差别。

GLB和glTF有什么区别?

它们是同一种格式的两种封装。glTF 是一个 JSON 文件,旁边还有单独的二进制文件和图片文件;GLB 则把这些全部打包进一个二进制文件。GLB 更便于上传和分享,所以大多数平台都要求使用它。