Wavefront OBJ

参考

类别

导入 - 导出

菜单

文件‣ 导入/导出 ‣ Wavefront (.obj)

OBJ是行业内广泛使用的事实标准。OBJ格式是一种流行的纯文本格式,但它只支持基本的几何与材质信息。

  • 网格:点,面,边,法线,UV

  • 按组/物体分离

  • 材质/纹理

  • NURBS曲线和曲面

Note

不支持网格顶点颜色,骨架,动画,灯光,相机,空物体,父子关系或变换。

Note

Blender目前仅支持复杂的基于节点的着色。OBJ 具有固定的类管道材质支持,此插件使用 Blender特色的 通用封装 来在两者之间转换。

Warning

  • 导入非常大的OBJ文件(超过100mb),会消耗大量内存。

  • OBJ的导出使用Unix的行结束标识 \n ,如果你在Windows系统中使用文本编辑器打开此类文件,必须确定其能够正确识别 \n 行结束标识。

用法

导入/导出几何体及曲线到OBJ格式。

如果有与OBJ匹配的 .MTL 文件,那它的材质也会被导入。

属性

导入

包括

图像查找

当无法找到图像文件时启用递归搜索。

平滑组 Smooth Groups

通过锐边环绕OBJ平滑组。 请注意,仅在启用“边缘分割”修改器时才会显示这些内容。

将OBJ线和双面导入为网格边。

变换

钳制尺寸

OBJ文件的比例通常差别很大,此设置会将导入的文件固定为固定大小。

向前/向上轴

由于许多应用程序使用不同的“向上”轴,因此存在转换轴向设置,向前和向上轴——通过映射不同的轴,您可以转换应用程序默认的向上和向前轴之间的旋转。

Blender使用Y轴向前,Z轴向上(因为前视图沿+Y轴方向)。 例如,许多应用程序通常使用Y作为向上轴,在这种情况下,需要使用-Z轴向前,Y轴向上。

几何数据(Geometry)

拆分/保持顶点顺序

导入OBJ时,将物体拆分为Blender物体很有用,这些物体根据OBJ文件命名。 但是,这种拆分会丢失使用OBJ文件作为变形目标时所需的顶点顺序。 它还会丢失任何未连接到面的顶点,因此如果要保持顶点顺序,必须禁用拆分。

按物体拆分和按组拆分

导入OBJ时,将对象拆分为Blender对象很有用,这些对象根据OBJ文件命名。 但是,这种拆分会丢失使用OBJ文件作为变形目标时所需的顶点顺序。 它还会丢失任何未连接到面的顶点,因此如果要保持顶点顺序,必须禁用拆分。

就Blender而言,OBJ物体和组没有区别,因为它们只是两个分离级别,OBJ组不等同于Blender组,因此两者都可以选择用于拆分。

导出

包括

选定的物体

只导出选定的物体,否则将导出场景中所有物体。

物体作为OBJ物体/组

将每个Blender物体导出为OBJ物体。

Note

请注意,就Blender而言,OBJ组和物体之间没有区别,此选项仅包含用于对其进行不同处理的应用程序。

材质组

为每种材质创建OBJ组。

动画

导出从起始帧到结束帧的每一帧为带标号的OBJ文件。请注意这将划分相当长的时间。

变换

比例

导出时使用全局比例。

路径模式

在导出文件中引用路径时,您可能需要对所使用的方法进行一些控制,因为绝对路径可能只在您自己的系统上正确。 另一方面,相对路径更具可移植性,但这意味着在本地文件系统上移动时必须保持文件分组。 在某些情况下,路径无关紧要,因为目标应用程序无论如何都会搜索一组预定义路径,因此您也可以选择去除路径。

自动

对于导出位置的子目录中的文件使用相对路径,对于此外的任何目录使用绝对路径。

绝对

使用完整路径。

相对

在所有情况都使用相对路径(除了在Windows上的不同驱动器上)。

匹配

依照在Blender中用到的路径使用相对/绝对路径。

片段路径

只写入文件名并忽略路径组件。

复制

在导出时复制文件并使用相对路径引用它。

向前/向上轴

由于许多应用程序使用不同的“向上”轴,因此存在转换轴向设置,前进和向上轴——通过映射不同的轴,您可以转换应用程序默认的向上和向前轴之间的旋转。

Blender使用Y轴向前,Z轴向上(因为前视图沿+Y轴方向看)。 例如,许多应用程序通常使用Y作为向上轴,在这种情况下,需要使用-Z轴向前,Y轴向上。

几何数据(Geometry)

应用修改器

导出三维视口中显示的网格物体,并应用所有修改器。 除非您要导出细分曲面变形笼,否则大多数情况下您都会想要这个。

平滑组 Smooth Groups

Todo.

Bitflag组

Todo.

写入法线

导出Blender的面和定点的法线(取决于曲面平滑设置)。

大多数情况下,这不是必需的,因为大多数应用程序将计算自己的法线,但为了匹配Blender的法线贴图纹理,您也需要编写它们。

包括UV

从Blender导出活动的UV层坐标。

写入材质

导出OBJ时一并写入MTL文件。大多数支持OBJ的导入器也会读取MTL文件。

三角面

将四边面导出为两个三面角形。有些程序只有非常基本的OBJ支持,只支持三角面。

曲线作为 NURBS

将NURBS曲线写为OBJ NURBS而不是转换为几何体。

多边形组

根据网格顶点组将面写入OBJ组。请注意,这是最佳猜测,因为面顶点可以位于多个顶点组中。

保持顶点顺序

在导出时保持顶点顺序。当OBJ用于变形目标时,这是必需的。

兼容性

NURBS表面,文本3D及变形球在导出时会被转换为网格。

缺失

以下部分功能缺失:

  • NURBS曲面——可以添加,但并未广泛使用。

  • 高级材质设置——记录了材质选项,但很少有文件使用它们,并且可用的示例很少。

  • 法线——Blender会忽略导入文件中的法线,并根据几何体重新计算它们。