3D 导出格式:GLB、glTF、OBJ、STL、PLY 与 3MF
六种导出格式在所有方案(含免费方案)中都可使用。选哪一个取决于接下来打开文件的那个工具,而不是哪个格式听起来更高级。
一句话答案
打印:STL,需要单位与颜色时用 3MF。Web 与游戏引擎:GLB。Blender、Maya、ZBrush 等 DCC 工具:OBJ 加配套 .mtl。需要逐顶点颜色的扫描类流程:PLY。需要文本可 diff 的场景:glTF。
一条规则就能避免大部分错误:导出格式应当是下游工具原生支持的那一个。之后每多做一次转换,就多一次丢东西的机会。
各格式能携带什么
| 格式 | 类型 | 可携带 | 会丢失 | 最适合 |
|---|---|---|---|---|
| STL | 网格 | 仅三角面 | 颜色、贴图、材质、单位 | 通用打印交接 |
| OBJ | 网格 | 几何、UV、法线,材质经 MTL 提供 | 动画、单位、场景图 | 在 DCC 工具中编辑 |
| GLB | 场景 | 几何、PBR 材质、贴图、动画、单位 | 对交付而言没有关键损失 | Web 与游戏引擎 |
| glTF | 场景 | 与 GLB 相同,以 JSON 加外部文件呈现 | 自包含性——它是文件夹而非单文件 | 检查或修补场景 |
| PLY | 网格 | 逐顶点颜色、法线、自定义属性 | 材质与 PBR | 扫描与摄影测量数据 |
| 3MF | 场景 | 单位、颜色、材质、多对象 | 动画 | 现代切片软件 |
每个用途对应一个格式
Cura、PrusaSlicer、Bambu Studio
STL 到处都能读;3MF 额外携带单位、颜色与多个对象,模型含多个零件时更合适。
three.js、Babylon.js、Unity、Unreal
用 GLB。材质、贴图与几何在一次请求中到位,不会出现附属文件丢失的问题。
Blender、Maya、3ds Max、ZBrush
用 OBJ 并把 .mtl 放在同一目录下。两个文件必须放在一起,否则材质加载不出来。
MeshLab、CloudCompare、Open3D
用 PLY,尤其是当逐顶点颜色或自定义属性本身就是数据的一部分时。
CAD 或 BIM 系统
以上都不是 CAD 格式。请在 CAD 软件内部把网格转成 STL 或同等精度的几何;本站不写出 STEP、IGES、SLDPRT、DWG、SKP 与 IFC。
应当预期的损失
这些格式之间的转换会明确说明什么会消失。STL 按设计丢弃颜色、贴图、材质与单位。OBJ 没有动画与单位。PLY 完全没有材质模型。从场景格式降到网格格式,还会把精确的解析曲面变成多面三角近似——这是性质上的改变,而不只是细节上的差别。
48 个服务端转换器会在执行转换之前把这些损失列出来,让一次格式变换成为决策,而不是意外。
实际使用中大家导什么
| 流程 | 最常用导出 | 次选 |
|---|---|---|
| 3D 打印 | STL | 打印含多个零件或颜色时用 3MF |
| 游戏道具 | GLB | 工具需要独立材质文件时用 OBJ |
| Web 查看器或配置器 | GLB | 需要手工修补场景时用 glTF |
| 扫描类处理 | PLY | 后续工具读不了 PLY 时用 OBJ |
常见问题
哪些导出格式是免费的?
全部。GLB、glTF、OBJ、STL、PLY 与 3MF 在所有方案(含免费方案)中都可导出。积分支付的是生成,而不是你选择的格式。
该用 GLB 还是 glTF?
交付用 GLB:单个二进制文件包含几何、材质与贴图。需要以 JSON 读取或修补场景时用 glTF——但请记住它引用外部的 .bin 与图片文件,因此它是文件夹而不是文件。
3D 打印应该导出什么?
单零件用 STL;模型含多个对象、颜色,或需要明确单位时用 3MF。切片之前请先在属性面板检查水密与流形标记。
为什么我的 OBJ 丢了颜色?
OBJ 把材质存在单独的 .mtl 文件中,并由它引用贴图。如果 .mtl 或贴图没有一起导出,或者之后文件被分开存放,几何就会以灰色呈现。
可以导出 STEP 或 FBX 吗?
不能。STEP、IGES、SLDPRT、X_T、DWG、SKP 与 IFC 属于 CAD 格式,本项目没有开源 Python 写出器;FBX 是专有格式,可在浏览器中读取,但服务端不写出。请用 GLB 或 OBJ,再到需要 CAD 格式的软件内部转换。
导出消耗积分吗?
不消耗。导出已完成的生成是免费的,且可以反复进行——同一个模型导出 GLB 给 Web 用、再导出 STL 给打印机用,都不需要额外花费。