OBJ 转 GLB 转换器
拖入 .obj 文件,直接在浏览器中转换为 .glb。文件不会离开你的电脑。
为什么要把 OBJ 转换为 GLB?
把 Blender / ZBrush 的 OBJ 变成可直接用于网页的资源。GLB 把几何体和材质打包进一个二进制文件——发邮件时不会丢失零散的纹理文件。对于在网页上发布 3D 的人来说,GLB 就是部署目标格式。
谁会做这种转换
嵌入 3D 资源的 Web 开发者、在产品页面上使用 <model-viewer> 的用户、想要单文件导入的 three.js 开发者,以及准备下载文件的 Sketchfab 创作者。
常见问题
- OBJ 通过路径引用 .mtl 和纹理文件——如果转换时缺少纹理,GLB 将使用默认材质。请把纹理放在 .obj 旁边。
- 多对象 OBJ 会变成一个 GLB 场景;两种格式都没有动画,因此得到的是静态场景。
- 顶点颜色(非标准 OBJ 扩展)很少能在转换后保留。如需保留,请先烘焙到纹理。
本工具的技术说明
OBJLoader + MTLLoader(找到同目录 .mtl 时)→ Group → GLTFExporter 二进制。漫反射颜色和 base-colour 纹理可干净映射;高光被近似为 metallic-roughness。
OBJ 与 GLB 有什么区别?
人类可读的 Wavefront 网格格式——在 3D 图形、游戏美术和资产流程中无处不在。与 .mtl 材质文件配套使用。
- 几乎所有 3D 工具都支持(Blender、Maya、3ds Max、Unity、Unreal……)
- 纯文本,便于 diff 和手动编辑
- 保留 UV 坐标和顶点法线,这一点 STL 做不到
- 通过配套的 .mtl 文件引用材质
- 文本格式——磁盘占用比二进制网格大
- 没有场景层级、动画和骨骼
- 材质存放在单独的文件中,容易丢失
二进制 glTF——3D 界的 JPEG。自包含、体积小,在 Web、AR 和所有现代 3D 引擎中都能原生加载。
- 所有内容(几何、纹理、材质、动画)打包在一个文件中
- 小巧快速——专为流式传输和 Web 分发设计
- Blender、Unity、Unreal、three.js、<model-viewer>、Android ARCore……都原生支持
- PBR 材质(金属度-粗糙度)在任何地方渲染效果都一致
- 二进制——无法手动编辑
- 在传统 CAD 流程中较少见
深入了解这两种格式
OBJ 的由来
由 Wavefront Technologies 在 1980 年代后期为其 Advanced Visualizer 软件创建。Wavefront 被并入 Alias(后来又归入 Autodesk)后,该格式依然公开,成为学术 3D 研究、业余建模和早期游戏美术的通用语言。正因为它的 ASCII 格式足够简单,每本图形学教材至今仍附带 OBJ 示例文件。
- .mtl 材质文件必须与 .obj 一起传递——请打包成 zip 发送,否则对方那边的纹理会消失。
- 规范中存在负索引和逐面法线,但许多导入器会悄悄读错。如果下游工具报错,请在 Blender 中往返一次后重新导出。
- 如果目标是游戏引擎,请在导出前三角化——Unity 和 Unreal 的 OBJ 导入器处理不了 n-gon。
实际用途:计算机图形学研究论文至今仍以 OBJ 作为网格的参考格式。爱好者模型市场(TurboSquid、CGTrader 的免费区)以 OBJ + MTL 包的形式分发。摄影测量流程(Meshroom、RealityCapture)以 OBJ 作为可移植的中间格式输出。当一个陌生人只说了一句“我需要一个 3D 模型”时,交给对方 OBJ 仍然是最稳妥的选择。
GLB 的由来
glTF 2.0 于 2017 年由 Khronos Group 批准,并迅速成为 W3C 推荐的 Web 3D 格式。GLB 是“一个文件装下一切”的二进制封装——几何、纹理、动画和场景图全部放在单个 .glb 中。由于 <model-viewer>、Android Scene Viewer 和所有现代游戏引擎几乎同时加入支持,它的普及呈爆发式增长。
- PBR 材质模型假定纹理处于线性空间——DCC 工具导出的已烘焙 gamma 的颜色贴图,在 Web 查看器中会显得发白褪色。
- 如果没有预加载解码器,Draco 网格压缩反而会拖慢加载;除非确实需要节省带宽,否则请关闭它。
- Y 轴朝上还是 Z 轴朝上:glTF 严格采用右手系、Y 轴朝上。Blender、3ds Max 和大多数 CAD 导出在导入时需要翻转坐标轴,否则模型会侧躺。
实际用途:电商产品页(IKEA、Amazon、Shopify 3D)、Android AR 快速查看、基于 <model-viewer> 的文档、NFT 市场以及实时配置器。只要 3D 资产需要在浏览器标签页中无插件渲染,答案就是 GLB。
如何将 OBJ 转换为 GLB
- 1将 .obj 文件拖到页面上。如果有配套的 .mtl,请一起加载——预览器会同时读取它们。
- 2在 3D 中预览网格。使用左侧的场景树逐一查看命名的组。
- 3点击“下载 GLB”。这个二进制文件可直接用于 three.js、<model-viewer>、Unity 或 AR。
常见问题解答
.mtl 文件中的材质会保留吗?
漫反射颜色和漫反射纹理会映射到 glTF PBR 的 base-colour。OBJ 的高光/光泽度无法干净地转换为 metallic-roughness,只能近似处理。如果外观很重要,请检查结果并在 Blender 中调整。
为什么 GLB 比 OBJ 小得多?
OBJ 是文本,并且按面重复列出顶点。GLB 是使用索引几何的二进制格式——同一模型通常小 3–10×。
UV 和法线呢?
两者都会保留。OBJ 有顶点法线时会直接转移;否则 Three.js 会根据 OBJ 组计算平直或平滑法线。
结果可以用于 AR 吗?
GLB 可直接用于 Android Scene Viewer。iOS AR Quick Look 则必须使用 USDZ——请使用 STEP 转 USDZ 转换器或主 3D 查看器的 USDZ 导出。
我的文件会被上传到任何地方吗?
不会。转换完全通过 Three.js 的 OBJ 加载器和 GLTFExporter 在你的浏览器中完成。