导出 OBJ (Wavefront)

Wavefront OBJ 是一种基于文本的传统 3D 模型交换格式。 尽管其在效率和功能方面存在局限性(例如,没有现代材料支持和几何实例化功能),但由于其简单的语法和手动可编辑性,该格式仍然很受欢迎。

导出选项

常规导出选项适用于 OBJ 导出。 如果在其他应用程序中无法正确显示导出的模型,请将三角化网格设置为 true

CGA 映射到 OBJ

下方小节概述了 CGA 到 OBJ 的映射。

几何

下表概述了几何映射:

OBJ 元素CGA 要素

v

资产网格中的折点数据。

vn

资产网格中的折点法线数据。

vt

资产网格的色彩映射表纹理通道中的纹理坐标。 在这些纹理坐标中不包括每个纹理的变换(请参阅 material.colormap.{su, sv, tu, tv, rw})。

f

由资产网格中的折点、折点法线和纹理坐标索引定义的网格面。

g

面组名称。 如果网格直接来自插入的资产,则将使用原始名称。 如果网格粒度设置为按材料合并网格,则此名称由 material.name 属性控制。 否则,将根据创建几何的操作来设置内部名称。

s

平滑组不受支持并且已关闭。 将使用折点法线。

usemtl

相应 .mtl 文件中的材料名称和引用(请参阅下方“材料”部分)。 仅当启用材料导出选项时才能写入。

mtllib

对相应 .mtl 文件的本地引用。 它使用与 .obj 文件相同的基本名称(但扩展名为 .mtl),并写入相同的目录中。

材料

下表概述了材料映射:

注:

材料定义将导出到单独的 .mtl 文件中。

MTL 元素CGA 要素

newmtl

材料名称对应于 .obj 文件中的 usemtl 语句。

illum

如果网格的材料包含等于 (0,0,0) 的镜面颜色分量,则将导出 Lambert 材料(illum 设置为 3)。 对于 Phong 材料(镜面分量 != 零或反射率),将其将设置为 4。

Kd

漫反射颜色。 使用 material.color 设置。

map_Kd

散射纹理。 使用 material.colormap 设置。 仅当将纹理文件分配给色彩映射表通道时,才能写入此语句。 或者,可以导出以下 uv 平移和缩放因子:

如果 material.colormap.{su,sv} != 1.0,则 -s 选项将附加缩放因子。

如果 material.colormap.{tu,tv} != 0.0,则 -o 选项将附加平移值。

Ka

环境光颜色。 使用 material.ambient 设置。

Ks

镜面颜色。 如果材料类型为 Phong(illum = 4),则使用 material.specular 设置。

d

不透明度。 使用 material.opacity 设置。

map_d

不透明度地图。 使用 material.opacitymap 设置。

Ns

冯氏光照模型的镜面反射指数,也称为 shininess。 使用 material.shininess 设置。

Tf

对于 Maya 兼容性,设置为 (1.0, 1.0, 1.0)。

Ni

对于 Maya 兼容性,设置为 1.0。

有关详细信息,请参阅渲染、导入和导出