在这里,我们将比较 OBJ 和 STL 文件格式,了解两种格式之间的差异,并重点介绍为特定任务选择任一格式的原因。在我们开始之前,如果您不熟悉 3D 建模及其背后的术语,我们强烈推荐这个很棒的文章解释了 3D 建模概念及其相关术语。
OBJ 和 STL 文件都可以包含由一系列三角形表示的 3D 对象;然而,他们存储这些数据的方式却截然不同。首先,OBJ 格式将几何图形存储为顶点和面的集合,顶点是从公共池中绘制的,这意味着 3D 对象可以在多个面上使用相同的顶点,而无需多次定义它。 STL 文件不会执行此操作;在 STL 格式中,每个面都有自己的一组 3 个顶点,这些顶点不能被其他面重复使用。
OBJ 文件支持每顶点法线;同样,这些都是从一个公共列表中获取的,该列表可以在 3D 对象内的多个面之间共享。但是,STL 文件不支持顶点法线,但支持面法线。 OBJ 文件可以在同一文件中包含多个 3D 对象;然而,STL 格式是一个简单的三角形列表,无法分离场景中的各个 3D 对象。
OBJ 文件对不同的对象材质有很多支持,包括颜色和纹理表面。然而,STL 文件不正式支持任何材质或纹理功能。 VisCAM和SolidView这两个应用程序有自己的实现,对 STL 3D 对象中的各个面提供有限的 16 位颜色支持。然而,这些功能通常不被其他应用程序支持,因此 STL 应被视为简单的几何格式,不支持任何类型的材质。
士兵的 3D 线框模型
士兵模型保存为 STL 文件,没有材质或纹理
士兵模型保存为带有纹理的 OBJ 文件
OBJ 和 STL 文件都可以在最流行的 3D 编辑应用程序中打开和编辑;请注意,由于 STL 格式的限制,如果您打开 STL 3D 模型并随后对其应用材质或纹理,然后将其保存回 STL 格式,您将丢失这些内容。保存为 OBJ 格式将保留 3D 模型使用的任何纹理和材质,但请注意,使用 OBJ 格式,材质将保存到单独的 MTL(材质)文件,并且纹理将另存为单独的文件图像文件(通常PNG或者JPG )。
对于 STL 文件,既有二进制版本也有纯文本版本,文本版本要大得多,因此我们不会考虑这种格式,因为大多数 STL 文件都是二进制的,如果没有,您可以使用我们的STL 压缩机将 STL 基于文本的文件转换为 STL 二进制文件。将 STL 二进制格式与 OBJ 格式(基于文本的格式)进行比较时,使用仅包含网格几何图形而没有纹理或材质的文件,OBJ 文件通常会位居首位,因为它提供了最小的两种格式的文件大小。
这可能看起来很奇怪,因为人们期望二进制格式更有效;然而,与基于文本的 OBJ 格式相比,STL 二进制文件的较大尺寸主要是由于重复的顶点数据,因为这不能在 STL 格式内的面之间共享。
基于较小的文件大小以及对材质、纹理等的额外支持,我们认为 OBJ 格式是用于存储 3D 模型的两种格式中更好的格式。如果您打算 3D 打印模型,则应使用 STL 格式,因为该格式在 3D 打印切片软件中得到了广泛支持。我们更详细地讨论从 OBJ 转换为 STL 以进行 3D 打印以下。
OBJ 文件格式最初由 Wavefront Technologies 创建,后来被许多其他 3D 软件供应商采用,是一种简单的基于文本的用于描述的文件格式3D模型/几何学。该数据可以包括顶点、面、法线、纹理坐标以及对外部纹理文件的引用。
由于格式是基于文本的,因此在 3D 建模应用程序中解析相对简单。基于文本的格式的一个缺点是,与类似的二进制格式(例如STL和压缩文件,例如3MF 。
如果您的 OBJ 文件与随附的 MTL 和纹理文件一起上传,这些文件将应用于转换过程。
STL 文件格式起源于 20 世纪 80 年代,是 3D Systems 的原生文件格式立体光刻计算机辅助设计软件。该格式定义了带有顶点和面的三角网格,是一种流行的共享格式可3D打印模型文件。
有几种格式试图扩展 STL 格式,即 SolidView 和 VisCAM,它们的格式包含每个网格面的有限 15 位颜色信息,而大多数现代 3D 软件经常忽略这些信息。 STL格式可以是文本或二进制;我们的工具将支持这两种格式。
标准 STL 文件格式不支持彩色面、顶点或纹理信息。默认情况下,该工具生成的 STL 文件仅包含原始网格/三角形数据,这非常适合 3D 打印。
该工具还可以选择将文件保存为支持彩色面的非标准格式之一,例如VisCAM和SolidView ,如果您想在支持这些格式的软件中进一步处理 STL,这是完美的选择。
从 OBJ 文件格式转换为 STL 可能是一个复杂的过程,用于此转换过程的任何工具都需要能够处理各种数据转换任务以及识别 3D 模型中的任何缺陷并修复他们。在这里,我们将解释我们的工具用于将您的 OBJ 文件准确转换为有效的 STL 3D 模型的转换过程。让我们从转换过程开始,该过程涉及以下步骤:
最简单的形式是,OBJ 文件是一个纯文本文件,其中包含人类可读的 3D 数据,例如顶点、面、法线等。这些组合在一起就构成了您在屏幕上看到的 3D 模型。
当我们的工具读取此 3D 数据时,我们感兴趣的是顶点、面和法线,因为这是唯一可以准确转换为最终 STL 文件的数据。
OBJ 文件可以包含其他数据,例如材质定义和纹理,用于描述应如何渲染一组特定的 3D 几何图形。由于我们正在创建不支持材质和纹理的 STL 文件,因此如果 OBJ 文件中存在该数据,我们将忽略该数据。
有关 OBJ 文件格式的更多信息,请参阅这个很棒的 文章其中详细解释了 OBJ 格式。
读取 OBJ 文件数据后,我们的工具会生成完整 3D 模型的内部表示,并尝试修复遇到的任何几何问题。除了修复 3D 模型的任何问题之外,该工具还将删除所有重复的顶点并准备模型以导出为 STL 格式。
STL 格式已经存在很多年了,不仅成为存储和传输 3D 模型的标准格式,而且成为 3D 打印的标准格式,这是我们拥有的之前谈到过。 STL 文件可以在大多数现代 3D 编辑应用程序中打开,无需进一步处理。
为了保存模型,我们的工具现在需要获取我们在步骤 2 中创建的内存中 3D 模型,并将其转换为 STL 格式。由于 STL 格式仅支持具有单一方向法线的简单三角形,因此如果您的 OBJ 包含顶点法线,这些将被重新计算为单面法线。为了确保有效的文件大小,我们的工具将始终以二进制格式保存任何 STL 文件。
如果您不熟悉切片软件,我们推荐这个有用的 文章。我们还有一个精彩且内容丰富的详细介绍 3D 打印 OBJ 文件的教程带您继续您的 3D 打印之旅。但一般来说,3D 打印机切片软件不支持 OBJ 文件格式。虽然也有例外,但一般来说,切片器软件开发人员没有资源来支持所有可能的 3D 模型格式。
OBJ 格式的小齿轮
Replicator 3D 打印机中的齿轮
完成的 3D 打印齿轮
但是,切片器软件可以处理格式化为 STL 规范的文件。这是因为 STL 尽管早于 3D 打印革命并且缺乏现代格式的一些功能,但已几乎普遍采用作为分发 3D 打印模型的首选格式。我们的OBJ 到 STL 转换工具可以将您的 OBJ 文件转换为适合加载到您选择的 3D 切片器软件中的 STL 文件。由于 STL 文件不支持材质颜色或纹理,因此我们的转换器不会处理这些,从而生成适合大多数 3D 切片器软件使用的单个 STL 文件。
如果您的 OBJ 文件具有单独的材质 (MTL) 和纹理(PNG、JPG 等)文件,您可以将它们与主 OBJ 文件一起拖放到上传工具上。我们的工具将智能地检测这些附加文件中哪些属于 OBJ 文件。或者,您可以将这些附加文件与 OBJ 文件一起放入 ZIP 或其他压缩存档文件中并上传。
我们的目标是尽快处理所有 OBJ 到 STL 的转换,这通常需要大约 5 秒,但对于更大更复杂的文件来说可能更长,所以请耐心等待。
STL 文件格式使用 3D 笛卡尔坐标系描述三角形的非结构化三角剖分表面。STL 文件不包含任何比例信息,单位任意。我们对 STL 文件有更详细的描述这里。
我们的工具将以二进制格式保存所有 STL 文件。或者,我们的工具允许您保存为非标准颜色 STL 格式。
不是。我们所有的转换工具都会在我们专用的转换服务器上处理您的 OBJ 文件,这意味着您可以在低规格的计算机、笔记本电脑、平板电脑和移动设备上使用我们的工具,并快速收到转换后的 STL 文件。
是的!我们的 OBJ 到 STL 工具可在任何配备现代网络浏览器的系统上运行。运行我们的任何转换工具都不需要专业软件。
是的。虽然您可以使用广告拦截器,但如果您喜欢我们的 OBJ 转换工具,请考虑将我们的网站列入白名单。启用广告拦截器后,我们的某些工具会受到一些转换限制,处理/转换时间会更长。
是的。当您将 OBJ 转换为 STL 时,有一个“反馈”选项,您可以使用该选项让我们知道您在转换文件时遇到的任何问题。