3D 模型格式转换器

将 STL、OBJ、FBX、glTF、3MF、PLY 等格式转换为 GLB、OBJ、STL、PLY 或 USDZ。免费,在浏览器中完成,无需上传。

格式转换

载入模型,在 3D 视图中检查,再下载为所需格式。

在浏览器里完成 3D 模型格式转换

这个 3D 模型格式转换器能读取 STL、OBJ、FBX、glTF、GLB、3MF、PLY、DAE、3DS、USDZ、STEP、SKP 和 3DM,输出为 GLB、glTF、OBJ、STL、PLY 或 USDZ。把文件拖进来,在 3D 预览里确认模型正常,选好目标格式,转换后下载即可。

转换在你自己的设备上进行。网页读取文件,在内存中完成转换,再交给浏览器下载,文件不会上传到服务器。不用注册,输出没有水印,也不限制转换次数。能处理多大的文件取决于设备内存:电脑浏览器处理几百 MB 的文件通常没有问题,手机能处理的要小一些。

Draco 压缩的 glTF 或 GLB 需要一个很小的 WebAssembly 解码器,它和页面一样由本站提供,不依赖境外 CDN,也不会发送你的模型。

转换步骤

1. 把文件拖到转换区域,或点击“选择文件”。如果模型带有配套文件,比如 OBJ 的 .mtl 和贴图、.gltf 的 .bin 和图片,要一次性全部选中或一起拖入。

2. 检查预览。可以旋转、缩放、平移,确认模型加载正确后再转换。

3. 选择输出格式。如果出现“修正向上轴”,决定是否保留勾选。

4. 点击转换按钮,文件会直接下载,随后显示输出文件大小。需要时可以点“重新下载”。

如果经常做同一种转换,可以直接用对应的专用页面:格式已经选好,页面里也写了这种转换特有的注意事项。

例如把建模软件导出的模型拿去 3D 打印,可以用OBJ 转 STL。

每种输出格式能保存什么

格式本身没有位置存放的信息,任何转换器都写不进去。选输出格式之前,先看清它能装下什么。本工具对每种输出的处理如下:

GLB
单文件的二进制 glTF 2.0。保留网格、PBR 材质、内嵌纹理和动画。通用性最好,拿不准选什么时就选它。
glTF
内容与 GLB 相同,写成一个 .gltf 文件,二进制数据和纹理以 base64 形式内嵌。可以用文本编辑器打开查看,但 base64 编码会让文件比同样内容的 GLB 大三分之一左右。
OBJ
只有几何体:顶点、法线、UV,每个网格一个分组。不写出 .mtl 和纹理,打开后是灰色的。动画会丢弃,模型按文件中存储的静止姿态保存,带骨骼的角色通常是 T 姿势。
STL
只有三角面,默认二进制,可选 ASCII。颜色、纹理、UV 和动画都会丢弃,所有网格按各自的位置、旋转和缩放合并成一个。
PLY
二进制 PLY。保留几何体和顶点颜色,适合 3D 扫描和点云。不写出纹理。
USDZ
iPhone 和 iPad 的“快速查看”(AR Quick Look)读取的格式,可以直接放进 AR 场景。材质转换为 PBR,纹理内嵌。不导出动画。

按用途选格式

选哪种格式,看文件下一步要去哪里,而不是看哪个格式更新。常见用途如下:

已经有 GLB,想在 iPhone 上看 AR 效果,可以用GLB 转 USDZ。

3D 打印
选 STL。Bambu Studio、Cura、PrusaSlicer 等切片软件都能读。STL 不带颜色和单位,单色打印用不到这些。如果源文件是游戏模型或扫描模型,导入切片软件后先核对尺寸(见下文)。
网页展示、安卓 AR
选 GLB。基于 three.js、Babylon.js 或 <model-viewer> 的网页查看器可以直接加载,安卓的 Scene Viewer 也用它做 AR。单个文件,不会出现贴图路径丢失的问题。
iPhone、iPad、Vision Pro 的 AR
选 USDZ。在 Safari、“文件”和“信息”App 里会用“快速查看”打开,可以把模型摆在房间里看。动画不会保留。
游戏引擎
Godot 和 Unreal Engine 能直接导入 glTF,选 GLB。Unity 需要先装 glTF 插件包才能导入 GLB;如果只是静态网格,也可以用 OBJ,无需插件,但材质要重新指定。
旧版建模或 CAD 软件
选 OBJ。几十年来几乎所有 3D 软件都能导入它。材质需要重新设置。
3D 扫描和点云
选 PLY,能保留每个顶点的颜色。没有面的点云只能转为 PLY、GLB 或 glTF;STL、OBJ 和 USDZ 需要三角面。

向上轴和单位

不同格式对“哪边朝上”的约定不同。STL、3MF、PLY、STEP 和 Rhino 3DM 通常是 Z 轴向上,这是 CAD 软件和切片软件的习惯;glTF、GLB、USDZ、OBJ、FBX、DAE 和 3DS 是 Y 轴向上。直接转换,模型会仰面或趴着躺倒。输入和输出的约定不同时,转换器会显示“修正向上轴”选项,默认勾选,把模型旋转 90 度,让它在目标软件里直立。如果源文件本来就是按另一种约定制作的,取消勾选即可。

单位是另一回事。STL、OBJ、FBX、glTF、GLB、3MF、PLY 和 3DS 的坐标按原样复制,不做换算;DAE 按文件声明的 <unit> 换算为米,Z_UP 的文件会转为直立;USD 和 USDZ 声明了 metersPerUnit 时也换算为米。问题在于各格式默认的单位不同:STL 文件本身不记录单位,但实际上几乎都是毫米;glTF 规定单位是米;FBX 常用厘米。一个 40 毫米高的 STL 零件转成 GLB 后高 40 个单位,glTF 软件会把它读成 40 米。在屏幕上,相机通常会自动对准模型,看不出问题;在 AR 里,它会有一栋楼那么大,需要先在 3D 编辑软件里缩放。

转换失败或结果不对

大多数问题出在输入文件,而不是输出格式。常见情况如下:

OBJ 转换后是灰色的
没有把 .mtl 和贴图图片与 .obj 一起选中。把它们一起拖入后再转换。
glTF 打不开
.gltf 通常引用单独的 .bin 和图片文件,需要一起拖入。缺少 .bin 时无法打开,并会提示缺少的文件名;缺少图片只会让表面没有纹理。不支持 glTF 1.0;把 KTX2/Basis 纹理列为必需扩展的文件也打不开,仅列为可选时能打开,但不显示这些纹理。
FBX 打不开
只能读取 FBX 7.0 及以上版本,较旧的 FBX 6.x 无法读取。在原软件里用较新的 FBX 版本重新导出。
模型躺倒了
源格式和目标格式的向上轴约定不同时,转换器会显示“修正向上轴”,改变勾选状态后重新转换。没有这个选项时,在查看器里打开模型,用“向上轴”把它摆正,再用“下载为”导出,文件会按你设置的向上轴写出。
在下一个软件里太大或太小
单位不一致。除 DAE 和声明了单位的 USDZ 外,转换器不缩放模型,请在接收文件的软件(切片软件、游戏引擎或 3D 编辑软件)里调整比例。
点云无法转为 STL、OBJ 或 USDZ
没有面的 PLY 没有三角面可写。改为输出 PLY、GLB 或 glTF,或者先在 MeshLab 等工具里把点云重建成网格。

常见问题

3D 模型格式转换收费吗?

免费。不用注册,输出文件没有水印,也不限制文件数量。所有处理都在浏览器里完成。

模型文件会上传到服务器吗?

不会。模型在你自己的设备上读取和转换。打开 Draco 压缩的 glTF 或 GLB 时,浏览器会从本站下载解码器,这个请求不包含你的模型。

支持哪些 3D 格式互相转换?

可以读取 STL、OBJ、FBX(7.0 及以上)、glTF 2.0、GLB、3MF、PLY、DAE、3DS、USDZ、STEP、SketchUp(.skp)和 Rhino(.3dm);可以输出 GLB、glTF、OBJ、STL、PLY 和 USDZ。STEP、SketchUp 和 Rhino 文件只能转出、不能写回:转换器会把它们的曲面转成三角面。

能转成 FBX 或 3MF 吗?

暂时不能。FBX 和 3MF 可以打开并转成其他格式,但不能作为输出格式。

转换后贴图没了,怎么回事?

有两种可能。一是输出格式存不了贴图:STL 和 PLY 没有纹理,OBJ 输出只有几何体,不带 .mtl。二是贴图在输入时就没加载上,因为没有和模型一起拖入。看一下预览:如果预览里已经是灰色,说明输入时就缺了贴图。

转换会改变模型尺寸吗?

多数格式不会,坐标原样复制。例外是 DAE 和声明了 metersPerUnit 的 USDZ,它们会按声明的单位换算为米。如果源文件用毫米,而目标软件按米理解(或者反过来),请在打开它的软件里缩放。

最大能转换多大的文件?

没有固定上限,取决于设备内存。电脑浏览器处理几百 MB 的文件通常没有问题;手机和平板会更早达到上限。

相关工具