obj文件、mtl文件结构说明

obj文件

obj文件是Alias|Wavefront公司开发的一种标准3D模型文件格式,适合用于3D软件模型之间的互导。
obj文件是一种文本文件,可以直接用写字板打开进行查看、编辑和修改,由一行行文本组成,注释行以符号“#”为开头,数据行由一两个标记字母也就是关键字开头,关键字解释了数据类型。若三维模型仅涉及直线和多边形,则使用到的关键字有以下几个。

obj文件使用的关键字
v: 表示本行指定一个顶点,此关键字后跟着3个单精度浮点数,分别表示该顶点的X、Y、Z坐标值
vt: 表示本行指定一个纹理坐标,此关键字后跟着两个单精度浮点数,分别表示此纹理坐标的U、V值
vn: 表示本行指定一个法线向量,此关键字后跟着3个单精度浮点数,分别表示该法向量的X、Y、Z坐标值
g: 表示组,后面参数为组名称,指定从此行之后到下一个以g开头的行之间的所有元素结合到一起
f: 表示本行指定一个表面,一个表面就是一个三角形图元,此关键字后的参数格式后面将详细介绍
usemtl: 此关键字后参数为材质名称,指定了从此行之后到下一个以usemtl开头的行之间的所有表面所使用的材质名称,该材质可以在此obj文件所附属的mtl文件中找到具体信息
mtllib: 此关键字后参数为文件名称,指定了obj文件所使用的材质库文件(mtl文件)的文件名称

obj文件示例
obj文件、mtl文件结构说明_第1张图片obj文件、mtl文件结构说明_第2张图片

mtl文件

obj文件不包含面的颜色定义信息,不过可以引用材质库,材质库信息储存在一个后缀是".mtl"的独立文件中。mtl文件是obj文件附属的材质库文件,材质库中包含材质的漫射(diffuse),环境(ambient),光泽(specular)的RGB的定义值,以及反射(specularity),折射(refraction),透明度(transparency)等其它特征。

mtl文件使用的关键字
newmtl: 定义新的材质组,后面参数为材质组名称
Ka: 材质的环境光(ambient color)
Kd: 散射光(diffuse color)
Ks: 镜面光(specular color)
Ke: 放射光(emissive color)
Ns: 材质的光亮度
d,Tr 均可用于定义材质的Alpha透明度
sharpness: 材质的锐度(sharpness)
illum: 照明度(illumination)后面可接0~10范围内的数字参数
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
Ni : 材质的光密度(optical density)
Tf: 材质的透射滤波(transmission filter),对应数据为r,g,b值
map_Ka、map_Kd map_Ks 材质的环境,散射和镜面贴图,对应数据为贴图文件名称
refl: 材质的反射属性

示例
obj文件、mtl文件结构说明_第3张图片

你可能感兴趣的:(3D模型)