你的 3D 打印模型是 .stl(从 Thingiverse、打印猫下载的),但要放到网页里用 Three.js 展示——得用 .glb 或 .gltf。STL 只有几何,没有材质、没有场景信息,转换时要补这些东西。
速工具 的 STL 转 GLB 工具支持在线转换,上传 STL 直接下载 GLB 单文件。
STL 和 GLB 的核心区别
| 对比项 | STL | GLB/GLTF |
|---|---|---|
| 数据内容 | 只有三角面网格 | 网格 + 材质 + 动画 + 场景 |
| 文件大小 | 小(二进制更紧凑) | 中(多了材质数据) |
| Web 支持 | 要自己写解析器 | Three.js / Babylon.js 原生支持 |
| 材质 | 完全没有 | PBR 材质(金属、粗糙度、法线) |
| 典型用途 | 3D 打印 | Web 3D、AR/VR、游戏引擎 |
转换时会发生什么
STL → GLB 转换工具会:
- 读取 STL 的三角面数据(顶点 + 法线)
- 给模型加一个默认 PBR 材质(漫反射颜色、金属度、粗糙度)
- 把模型放进一个 GLTF 场景里(包括摄像机、灯光设置)
- 输出 GLB(单文件)或 GLTF(JSON + .bin + 贴图)
因为 STL 没有材质信息,转换出来的模型是「默认灰色」。要在网页里好看,得在 Three.js 里改材质,或者在 Blender 里重新贴材质再导出。
水密性检查
3D 打印要求模型是「水密」的(没有破洞、法线朝外)。STL 转 GLB 之前,最好用 STL 查看器 先检查一下:
- 查看有没有红色边(表示边界边,即破洞)
- 查看法线方向(Blender 里用「显示面法线」功能)
- 有破洞的模型,先修复再转格式
在线转换步骤
- 打开 STL 转 GLB 工具。
- 上传
.stl文件(ASCII 或二进制都支持)。 - 选择导出格式(GLB 单文件推荐)。
- 设置默认材质颜色(可选)。
- 点击转换,下载结果。
- 用 3D 模型查看器 验证一下。
FAQ
转换后模型变成「无材质」的灰色的怎么办?
这是正常的。STL 格式本身就没有材质信息,转换工具只能给一个默认材质。要让模型好看,可以:1. 用 Blender 打开 GLB,重新贴材质再导出;2. 在 Three.js 代码里改材质颜色(给 mesh.material.color 赋值)。
STL 和 OBJ 该用哪个转 GLB?
如果原模型有 OBJ + MTL(材质),用 OBJ 转 GLB 更好(材质能保留一部分)。如果只有 STL,转出来也是没有材质的,但 STL 文件更小、处理更快。