UltKit

STL转OBJ转换器

很多渲染、贴图和游戏工具只支持OBJ而不支持STL,转换后即可把可打印模型导入这些工具。模型形状逐个三角面原样复制,变化的只是文件的存储方式。

3D 模型转换器

或将STL, OBJ, MTL … 文件拖放到此处 ·

单个文件最大 95 MB· 最多 20 个文件· 30 分钟后删除

输出

文件在我们的服务器上处理,并在 30 分钟后删除。

使用方法

  1. 1

    上传STL文件

    支持 ASCII 或二进制 STL,最多 20 个文件,每个不超过 95 MB。文件上传 30 分钟后会从服务器删除。

  2. 2

    按需调整模型朝向

    打印用的模型是 Z 轴向上。如果目标软件是 Y 轴向上(例如 Unity),请在高级设置中把向上轴设为 Y-up,模型才会正立。

  3. 3

    转换为OBJ

    点击转换为 OBJ。每个 STL 会生成一个 .obj 文件,可以导入其他软件,也可以用文本编辑器打开。

答案

STL 转 OBJ 会损失细节吗?

不会。OBJ 能容纳 STL 的每一个三角形,几何数据原样保留。你会得到共用顶点,以及更多 3D 软件都能读取的格式;但不会多出颜色或 UV 贴图,因为 STL 本来就没有这些。

50 字节二进制 STL 中每个三角形的大小

12 个 4 字节数字(一条法线和三个顶点)加上 2 字节属性字段,文件开头还有 80 字节头部和 4 字节三角形数量。

STL与OBJ存储同一网格的方式有何不同

STL 由 3D Systems 于 1987 年设计,目的是给打印机提供最简单的交接格式。每个三角形都完整写出自己的三个顶点,因此被六个相邻三角形共用的顶点会重复写六次。这让文件便于流式读取,却很难编辑:因为里面没有记录哪些三角形相互相连。

OBJ 来自 Wavefront Technologies,它只保存一份顶点位置列表,每个面通过指向列表中的条目来描述。相连的表面保持相连,这正是建模和雕刻工具所需要的。OBJ 还可以包含 UV 坐标、顶点法线、命名分组,以及指向 .mtl 材质文件的链接。从 STL 转换后,这些可选部分都是空的,等你自行添加。

STL

STL 网格

STL(stereolithography,立体光刻)是 3D Systems 于 1987 年创建的 3D 网格格式。它只以三角形列表的形式描述物体的表面几何,不含颜色、材质、单位或场景信息。由于结构简单,它成为 Cura 和 PrusaSlicer 等 3D 打印切片软件的默认输入格式。曲面由许多平面三角形近似表示,因此光滑的模型可能产生非常大的文件。

压缩方式
–
透明度
–
动画
不支持
发布年份
1987 · 3D Systems
STL 转换器

OBJ

Wavefront OBJ

OBJ 是 Wavefront Technologies 开发的 3D 几何格式。它是纯文本文件,列出顶点、纹理坐标、法线和面,材质和贴图则由单独的 .mtl 文件引用。几乎所有 3D 建模软件、游戏引擎和 3D 打印工具都能导入。OBJ 不支持动画、骨骼绑定或场景层级,如果 MTL 和图片文件没有放在一起,贴图就会丢失。

压缩方式
–
透明度
–
动画
不支持
发布年份
Wavefront Technologies
OBJ 转换器

为打印制作的模型需要渲染、做动画、贴图,或放进不支持导入 STL 的游戏引擎时,人们就会把 STL 转换为 OBJ。

STL转OBJ、GLB还是STEP:如何选择目标格式

OBJ

编辑、渲染或贴图

纯文本格式,自 20 世纪 90 年代以来几乎所有 3D 程序都能读取。

  • 共用顶点,便于建模
  • 可添加 UV 和材质
  • 可在 Unity、Maya、Blender 等大多数 3D 软件中打开
适用于: 把打印模型带入 3D 美术流程
GLB

在网页或 AR 中展示

单个二进制文件,包含材质,以米为单位。

  • 可在 three.js 和 model-viewer 中加载
  • 可在 Android Scene Viewer 中打开
  • 适合产品预览
适用于: 分享可在浏览器中旋转查看的模型
STEP

导入 CAD

把三角形包裹成实体的面。

  • 可在 Fusion 360 和 SolidWorks 中打开
  • 只能直接编辑,没有历史记录
  • 曲线仍然是多边形面
适用于: 为只有网格的零件添加特征

如果你只想在浏览器中预览而不是编辑,STL 转 GLB 可以省去一步。如果 CAD 软件或机械加工人员需要这个零件,STL 转 STEP 会把网格包裹成实体。编辑后的模型需要送回打印机时,反向转换可以一次性生成新的 STL。

STL转OBJ常见问题

Unity能导入STL文件吗?

不能直接使用。Unity 的模型导入器支持 FBX、OBJ、DAE、3DS 和 DXF,以及已安装建模软件的格式,所以放进 Assets 文件夹的 STL 会被忽略。转换为 OBJ 是最快的办法,请先把向上轴设为 Y-up。

转换后的OBJ有用于贴图的UV坐标吗?

不会,因为 STL 本身就没有这些信息。OBJ 保存的是相同的三角形,不含纹理坐标。导入后可在 Blender 或你的贴图软件中展开 UV,之后就能绘制或应用图片纹理。

OBJ文件比STL大还是小?

取决于 STL 的编码方式。OBJ 对共用的顶点只写一次,再用索引引用,所以通常比 ASCII STL 小得多。与二进制 STL 相比,大小往往相近或略大,因为 OBJ 的数字是以文本形式保存的。

为什么转换后的模型在渲染器里棱角分明、不平滑?

STL 每个三角形只存一条法线,渲染出来是平面着色。在 Blender 中使用“平滑着色”或自动平滑角度,或在你的 3D 软件里重新计算法线,曲面就会重新显得圆滑。

多部件打印模型能转换成多个独立的OBJ对象吗?

如果 STL 包含多个互不相连的壳体,它们会输出到同一个 OBJ 文件中。可以在 Blender 中用“按松散部分分离”把它们拆成多个对象,也可以把每个零件分别作为单独的 STL 上传,每个零件得到一个 OBJ。

STL转OBJ会丢失什么吗?

几何数据不会丢失,每个三角形和顶点位置都会被复制。唯一没有保留的是二进制 STL 的 80 字节头部文字和未使用的属性字节,几乎没有软件会读取它们。