OBJ 转 GLB
将 OBJ 及其 MTL 和纹理转换为单个 GLB 文件,用于网页、AR 和游戏引擎。免费,无需上传。
将 OBJ 文件拖放到这里
OBJ 转 GLB:三个文件合成一个
这个页面在浏览器里把 OBJ 转换为 GLB。把 .obj 和它的 .mtl、贴图图片一起拖进来,检查预览,然后下载一个贴图已打包在内的 GLB。文件不会上传。
一个 OBJ 模型很少只有一个文件:几何体在 .obj 里,材质在单独的 .mtl 里,贴图是单独的图片,由 .mtl 按文件名引用。挪动其中一个文件、改了文件夹名,或者只上传了 .obj,模型就会变成灰色。GLB 把这些全部放进一个二进制文件,网页查看器、安卓 AR、Godot 和 Unreal Engine 都能直接加载。
OBJ 转 GLB 的步骤
1. 一次性选中或拖入 .obj、.mtl 和所有贴图图片。
2. 检查预览。如果是灰色的,说明缺了文件,或者贴图名和 .mtl 里的不一致。
3. 点击“转换为 GLB”,.glb 会直接下载。
4. 转换后页面会显示输出大小。几何体、材质和贴图都在这一个文件里。
要从 GLB 转回 OBJ,可以用GLB 转 OBJ。
贴图不显示?先把 MTL 和贴图一起选上
OBJ 转 GLB 最常见的错误,是只转了 .obj。转换器只能打包你给它的贴图。请同时选中 .obj、.mtl 和所有图片文件,或者一起拖到页面上。如果预览是灰色的,先停下来补齐文件再转换;从灰色预览转出来的 GLB 也是灰色的。
贴图的文件名必须和 .mtl 里写的一致。如果贴图还是不显示,用文本编辑器打开 .mtl,以 map_Kd 开头的行写的是颜色贴图的文件名。在别人电脑上导出的文件,有时会写成 C:\Users\...\wood.jpg 这样的完整路径,或者大小写和实际文件不一致。把图片改名,让它和 .mtl 里的名字对上,通常是最快的办法。
贴图文件名里有中文时,.mtl 的文本编码和实际文件名可能对不上。建议把贴图改成英文或数字文件名,并同步修改 .mtl 里对应的名字。
转换后保留哪些内容
OBJ 的材质基于一种较老的光照模型,glTF 用的是 PBR,所以有一部分是“翻译”而不是照搬:
- 几何体、法线、UV
- 保留。平滑着色和平直着色都与 OBJ 原来一致。
- 分组和对象
- 保留,在 GLB 里是各自独立的网格。
- 漫反射颜色和贴图
- 保留,转为 PBR 材质的基础色(base color),贴图内嵌在 GLB 里。
- 高光和光泽度
- .mtl 里的 Ks 和 Ns 在 glTF 的金属度-粗糙度模型里没有直接对应。表面效果会和原来的渲染器有些差别,通常更哑光。如果在意,可以在 3D 编辑软件里调整粗糙度和金属度。
- 尺寸
- 不变。OBJ 没有单位,glTF 的单位是米,见下文。
方向和尺寸
OBJ 和 glTF 都是 Y 轴向上,不需要旋转,所以这个转换没有“修正向上轴”选项。如果 OBJ 是从 Z 轴向上的软件导出、而且导出时没有转换坐标轴,它在 GLB 里和在其他 Y 轴向上的查看器里一样是躺着的。预览里就能看出来;可以回到原软件修改导出设置,或者在 3D 编辑软件里旋转;也可以在 OBJ 在线查看器里用“向上轴”把它摆正,再用“下载为”导出 GLB,文件会按你设置的向上轴写出。
单位需要多留意。glTF 把坐标当作米。Blender 按默认设置导出的 OBJ 本来就是米,但 CAD 和 3D 打印软件导出的 OBJ 通常是毫米,一个 200 毫米的零件在 glTF 里就成了 200 米高。在网页上相机会自动对准,看不出问题;在 AR 里它会非常大。转换器不缩放,如果需要真实尺寸,在 3D 编辑软件里缩放 0.001 倍。
常见问题
OBJ 转 GLB 怎么保留贴图?
把 .obj、.mtl 和所有贴图图片一起选中,或者一起拖到页面上。确认预览里能看到贴图,再转换。GLB 会把贴图内嵌在文件里。
OBJ 转 GLB 后为什么是灰色的?
.mtl 或贴图图片没有加载,或者图片文件名和 .mtl 里写的不一致。把所有文件一起加载,确认预览有颜色后再转换。
没有 MTL 文件的 OBJ 能转吗?
能。会得到一个使用普通默认材质的 GLB。几何体、法线和 UV 都保留,之后可以在 3D 编辑软件里加贴图。
转换后模型为什么比原来更亮或更暗淡?
OBJ 的高光设置无法一一对应到 glTF 的 PBR 材质。颜色和贴图会保留,高光只能近似。需要的话,在 3D 编辑软件里调整粗糙度和金属度。
转出来的 GLB 能用于 AR 吗?
安卓可以,Scene Viewer 使用 GLB。iPhone 和 iPad 需要 USDZ。另外先检查尺寸:以毫米为单位的 OBJ 在 AR 里会大 1000 倍。
文件会被上传吗?
不会。OBJ、MTL 和贴图都由浏览器读取,在你的设备上完成转换。