免费在线 · 无需注册 · 100% 本地

STL 转 OBJ 转换器

拖入 .stl 文件,直接在浏览器中转换为 .obj。文件不会离开你的电脑。

⇪
将 STL 文件拖到这里
支持 .stl · 转换为 .obj

为什么要把 STL 转换为 OBJ?

STL 适合打印,但不认识材质。OBJ 面向渲染流程——它可以携带 UV、顶点组以及配套的 .mtl。这种转换通常是把打印用网格升级为 DCC 软件(Blender、Maya、Cinema 4D)可以添加纹理和灯光的形式。

谁会做这种转换

为作品集或商店商品页渲染设计的 3D打印用户、先导出了 STL 而现在需要用 Blender 的摄影测量 / 扫描用户,以及从供应商收到 STL 却需要 OBJ 的任何人。

常见问题

  • 文件会增大 3–5×。OBJ 是 ASCII,相比之下二进制 STL 要紧凑得多。
  • STL 存储的是逐面法线——转到 OBJ 后,在 Blender 中焊接重复顶点之前,平滑着色通常看起来不对。
  • 不会凭空生成 UV。如需纹理处理,请手动展开(Blender 的 Smart UV Project 可以快速入门)。

本工具的技术说明

Three.js STLLoader 读取网格,OBJExporter 写出单个 .obj 并保留顶点法线。不输出 .mtl——没有可引用的内容。

STL 与 OBJ 有什么区别?

STL.stl

所有 3D 打印切片软件都能识别的三角网格格式。只有几何——没有单位、颜色或装配体。

优点
  • 通用 3D 打印格式——Cura、PrusaSlicer、Bambu Studio 都支持 STL
  • 小巧、简单,加载极快
  • 非常适合网格处理流程、仿真前处理器和快速预览
局限
  • 三角化近似——曲面会损失精度
  • 没有颜色、材质或装配体数据
  • 按惯例每个文件只有一个壳体(多实体会被合并)
典型用途:3D 打印、快速原型、基于网格的工作流程
OBJ.obj

人类可读的 Wavefront 网格格式——在 3D 图形、游戏美术和资产流程中无处不在。与 .mtl 材质文件配套使用。

优点
  • 几乎所有 3D 工具都支持(Blender、Maya、3ds Max、Unity、Unreal……)
  • 纯文本,便于 diff 和手动编辑
  • 保留 UV 坐标和顶点法线,这一点 STL 做不到
  • 通过配套的 .mtl 文件引用材质
局限
  • 文本格式——磁盘占用比二进制网格大
  • 没有场景层级、动画和骨骼
  • 材质存放在单独的文件中,容易丢失
典型用途:3D 美术流程、DCC 交接、资产归档

深入了解这两种格式

STL 的由来

由 3D Systems 于 1987 年为第一台商用光固化(立体光刻)设备发明(名称由此而来——“STereoLithography”)。它原本只是一个用完即弃的内部格式;近四十年后,它仍是 CAD 与市面上所有切片软件之间的默认交接格式,原因很简单:没有其他格式及时获得普遍支持。

注意事项
  • STL 没有单位——以英寸创建的文件在公制切片软件中重新打开,会按 1/25.4 的比例打印。切片前务必确认源单位。
  • 非流形网格(孔洞、翻转的法线、内部壁面)切片时不会报错,但打印出来是无法挽救的废品。浪费耗材之前,请先运行网格修复工具。
  • ASCII STL 比二进制 STL 大约 5×,却毫无好处——除非确实需要对文件做 diff,否则请始终导出二进制。

实际用途:所有 FDM 和 SLA 切片软件(Cura、PrusaSlicer、Bambu Studio、Lychee、Chitubox)都把 STL 作为首要输入格式。仿真前处理器(Ansys、Abaqus)也读取 STL 进行网格划分。按需制造服务(Shapeways、JLCPCB 的 3D 打印业务、Protolabs)直接接受 STL 上传。

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 仍然是最稳妥的选择。

如何将 STL 转换为 OBJ

  1. 1
    将 .stl 文件拖到页面上(或点击浏览)。全部在本地运行,不会上传任何内容。
  2. 2
    在 3D 中预览网格。旋转检查几何体,确认三角面数正确。
  3. 3
    点击“下载 OBJ”保存 Wavefront 文件。可直接导入 Blender、Maya、Unity 或 Unreal。

常见问题解答

我的 STL 文件会上传到服务器吗?

不会。一切都在你的浏览器中完成——Three.js 载入 STL,重新导出为 OBJ,并提供下载链接。任何内容都不会离开你的设备。

会生成 .mtl 材质文件吗?

不会——STL 没有可带过去的材质数据,所以我们只输出 .obj 几何文件。请在目标工具(Blender、Unity 等)中指定材质。

STL 转 OBJ 会添加 UV 坐标吗?

不会。STL 中不存在 UV,也无法可靠地凭空生成。如需 UV,请在导入 Blender 后展开网格(对打印模型来说,Smart UV Project 效果不错)。

为什么我的 OBJ 比 STL 大?

OBJ 是文本格式,而(二进制)STL 很紧凑。预计大小约为 2–3×。换来的是人类可读性和更广泛的 DCC 支持。

顶点 / 三角面数上限是多少?

没有硬性上限——浏览器内存就是上限。在现代桌面电脑上,几百万三角面的网格都能顺利转换。

相关转换器

OBJ → STLSTEP → STLSTEP → OBJFBX → GLB