【3D文件格式解析】.obj + .mtl

OBJ

obj文件是3D模型文件格式。由Alias|Wavefront公司为3D建模和动画软件"Advanced Visualizer"开发的一种标准,适合用于3D软件模型之间的互导,也可以通过Maya读写。

  • OBJ文件是一种3D模型文件。不包含动画、材质特性、贴图路径、动力学、粒子等信息。
  • OBJ文件主要支持多边形(Polygons)模型。虽然也支持曲线(Curves)、表面(Surfaces)、点组材质(Point Group Materials),但Maya导出的OBJ文件并不包括这些信息。
  • OBJ文件支持三个点以上的面,这一点很有用。很多其它的模型文件格式只支持三个点的面,所以导入Maya的模型经常被三角化了,这对于我们对模型进行再加工甚为不利。
  • OBJ文件支持法线和贴图坐标。在其它软件中调整好贴图后,贴图坐标信息可以存入OBJ文件中,这样文件导入Maya后只需指定一下贴图文件路径就行了,不需要再调整贴图坐标。

格式

OBJ文件由一行行文本组成,注释行以符号“#”为开头,空格和空行可以随意加到文件中以增加文件的可读性。

多行可以逻辑地连接在一起表示一行,方法是在每一行最后添加一个连接符(\)。注意连接符(\)后面不能出现空格或Tab格,否则将导致文件出错。

顶点数据(Vertex data)

  • v 几何体顶点(Geometric vertices)
  • vt 贴图坐标点(Texture vertices)
  • vn 顶点法线(Vertex normals)

元素(Elements)

  • p 点(Point)
  • l 线(Line)
  • f 面(Face)

成组(Grouping)

  • g 组名称(Group name)
  • s 光滑组(Smoothing group)
  • mg 合并组(Merging group)
  • o 对象名称(Object name)

显示(Display)/渲染属性(render attributes)

  • usemtl 材质名称(Material name)
  • mtllib 材质库(Material library)

MTL

OBJ文件不包含面的颜色定义信息,不过可以引用材质库,材质库信息储存在一个后缀是".mtl"的独立文件中。关键字"mtllib"即材质库的意思。

材质库中包含材质的漫射(diffuse),环境(ambient),光泽(specular)的RGB(红绿蓝)的定义值,以及反射(specularity),折射(refraction),透明度(transparency)等其它特征。

"usemtl"指定了材质之后,以后的面都是使用这一材质,直到遇到下一个"usemtl"来指定新的材质。

格式

newmtl 定义新的材质组,后面参数为材质组名称
Ke 放射光(emissive color)

Ka

map_Ka

环境光(ambient color)

Kd

map_Kd

散射光(diffuse color)

Ks

map_Ks

镜面光(specular color)

d

map_d

Alpha透明度
map_bump 凹凸
Tr Alpha透明度
Ns

材质的光亮度

反射指数 定义了反射高光度。该值越高则高光越密集,一般取值范围在0~1000。
Ni

材质的光密度(optical density)

折射值 可在0.001到10之间进行取值。若取值为1.0,光在通过物体的时候不发生弯曲。玻璃的折射率为1.5
Tf

材质的透射滤波(transmission filter)

滤光透射率
refl 材质的反射属性
illum 0 Color on and Ambient off
1 Color on and Ambient on
2 Highlight on
3 Reflection on and Ray trace on
4 Transparency: Glass on
Reflection: Ray trace on
5 Reflection: Fresnel on and Ray trace on
6 Transparency: Refraction on
Reflection: Fresnel off and Ray trace on
7 Transparency: Refraction on
Reflection: Fresnel on and Ray trace on
8 Reflection on and Ray trace off
9 Transparency: Glass on ,Reflection: Ray trace off
10 Casts shadows onto invisible surfaces

你可能感兴趣的:(Computer,Graphic)