STL to OBJ

STL 转 OBJ 在线转换

打印网格要进会着色的工具。STL 几乎只有三角,转 OBJ 不会凭空长出合格 UV 和材质,只是换了个更好分物体的容器。

STL 转 OBJ 在线转换

这不是"升级精度"

三角还是那些三角。换格式不加密。STL 里的棱转 OBJ 后还是棱,圆孔还是十二边形。

要更密回到 CAD 重新导出,或在 ZBrush / Blender 里重拓扑、细分。

二进制还是 ASCII STL

两者都能转。ASCII 又大又慢,几十万面就上百 MB;能换二进制源更好。

单位照旧:STL 不管单位,OBJ 也不管。你自己记,导入 DCC 时按毫米设缩放。

转换时实际做了什么

STL 是最笨的网格格式:一行一个三角形,三个顶点坐标加一个面法线,没有任何顶点共享。一个 10 万面的模型存了 30 万个顶点,其中大部分是重复的。转 OBJ 时第一步是焊接:把位置相同(或容差内)的顶点合并成一个,三角形改为引用顶点索引。这一步让文件变小、也让软件知道哪些面是相连的。

第二步重算法线。STL 只有面法线,OBJ 可以有顶点法线;有了共享顶点后,按相邻面的夹角决定顶点法线是平均(光滑)还是分开(硬边)。这决定了导入渲染器后表面是圆润的还是一块块的。

第三步写分组。STL 里没有物体概念,转出来默认是一个组。若 STL 本身是多个不连通的壳体,可以按连通性拆成多个组,方便在 DCC 里分别选择。

转之前和之后

先修再转

STL 有破面、非流形的,转 OBJ 后问题照样在。先去 STL 修复,干净的网格再转。

面数

扫描出的 STL 动辄几百万面,OBJ 文本格式会更大。先减面到目标软件能接受的量。

UV

OBJ 可以有 UV,但 STL 没有,转出来 vt 为空。要贴图在 DCC 里展 UV。

上网页

OBJ 不是网页格式。给浏览器看的再走 OBJ 转 glTF,或直接从 STL 转 GLB。

接着看这些页