3MF 转 OBJ 转换器
拖入 .3mf 文件,直接在浏览器中转换为 .obj。文件不会离开你的电脑。
为什么要把 3MF 转换为 OBJ?
把切片软件原生的 3MF 接入渲染 / DCC 流程。OBJ 仍是 Blender 和 KeyShot 导入静态网格的主力格式——所以当从 Printables / Bambu / Prusa 下载的模型需要变成一张精美的展示渲染图时,3MF → OBJ 是最快的路径。
谁会做这种转换
为作品集或产品页渲染自己打印设计的创客、生成预览图的打印服务运营者,以及从 Printables 下载 3MF 想在 Blender 中修改的任何人。
常见问题
- 3MF 的颜色 / 材质元数据无法直接映射到 OBJ——需要在 Blender 中重新制作 PBR。
- 多实体 3MF 大多会把实体名保留为 OBJ 分组,Blender 会将其导入为不同对象。复杂装配体仍可能被合并。
- 3MF 中不存在 UV,因此不会生成 UV。导入后请在 DCC 中手动展开。
本工具的技术说明
Three.js 3MFLoader 解压封装包,OBJExporter 写出包含逐顶点位置和法线的单个 .obj。不会生成 .mtl——材质需在后续环节重新制作。
3MF 与 OBJ 有什么区别?
STL 在 3D 打印领域的现代继任者——以 zip 压缩的 XML 包携带单位、颜色、材质和多个实体。
- 内置真实单位(再也不用问“这是毫米还是英寸?”)
- 多材料、多颜色以及逐实体元数据
- 紧凑的 zip 压缩载荷——比同等 STL 更小
- 并非所有切片软件都能读取 3MF(如今多数已支持——Bambu、Prusa、Cura)
- 与 STL 相比,网格编辑工具较少
人类可读的 Wavefront 网格格式——在 3D 图形、游戏美术和资产流程中无处不在。与 .mtl 材质文件配套使用。
- 几乎所有 3D 工具都支持(Blender、Maya、3ds Max、Unity、Unreal……)
- 纯文本,便于 diff 和手动编辑
- 保留 UV 坐标和顶点法线,这一点 STL 做不到
- 通过配套的 .mtl 文件引用材质
- 文本格式——磁盘占用比二进制网格大
- 没有场景层级、动画和骨骼
- 材质存放在单独的文件中,容易丢失
深入了解这两种格式
3MF 的由来
3MF Consortium(Microsoft、HP、Autodesk、Dassault、Shapeways 等)于 2015 年发布 1.0 版,专门用于取代 STL 沿用近三十年的种种局限。Bambu Studio 和 PrusaSlicer 积极采用它,因为它是交付多颜色 / 多材料打印项目唯一可移植的方式。
- 该格式是 zip 压缩的 XML——调试时完全可以把 .3mf 改名为 .zip 查看内容。
- 扩展(materials、slice、production)是可选的;切片软件可能读取了几何,却丢弃了颜色元数据。
- 有些切片软件对“可直接打印的 3MF”(已烘焙支撑和打印路径)和“设计用 3MF”(只有网格)的处理方式不同。请在导出对话框中选择正确的类型。
实际用途:Bambu X1C / A1 多材料打印、Prusa MMU 工作流程、按面涂色的彩色打印(PrusaSlicer、Bambu Studio)以及 Windows 3D Builder。凡是 STL 会丢失信息的地方,3MF 都已悄然接手。
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 仍然是最稳妥的选择。
如何将 3MF 转换为 OBJ
- 1将 .3mf 文件拖放到页面上。支持 Bambu Studio、PrusaSlicer、Cura 和 OrcaSlicer 的输出文件。
- 2在 3D 中预览合并后的网格——多实体 3MF 会合并为一个几何体用于 OBJ。
- 3点击“下载 OBJ”。可直接在 Blender、Maya、3ds Max 或任何 Wavefront 查看器中打开。
常见问题解答
为什么要把 3MF 转换为 OBJ?
3MF 在切片软件中很好用,但大多数 DCC 工具仍偏好 OBJ。如果你想在切片前先用 Blender 调整打印模型,或者要把模型交给没有 3MF 查看器的人,OBJ 是通用之选。
多实体 3MF 会保留每个实体吗?
OBJ 通过 g/o 标签支持分组,three.js 的 3MF 加载器会把每个实体挂载为子节点。导出的 OBJ 将它们保留为独立的命名分组,Blender 和 Maya 会将其导入为不同的对象。
颜色 / 材质会保留吗?
OBJ 的基础规范中没有按实体的材质数据,转换器也不会写出配套的 .mtl——因此颜色和材质属性会被丢弃。如需面向打印的往返转换,建议使用 3MF → STL(无损网格,不涉及材质问题)。
单位怎么处理?
3MF 显式存储单位,OBJ 则没有。转换器输出原始数值坐标,因此 OBJ 在 Blender 中会以 3MF 创建时的相同缩放加载(通常为 mm)。
会上传任何内容吗?
不会。3MF 在你的浏览器中通过 three.js 解压,并在本地重新导出为 OBJ。文件不会离开你的设备。