常见问题
导航栏目
行业动态
新闻资讯

联系我们
行业背景
obj文件的结构和使用
文章来源:实验室撰写      发布者:admin
       obj文件是Alias|Wavefront公司开发的一种标准三维模型文件格式,很适合用于三维软件模型之间的互导,目前几乎所有知名的三维软件都支持obj文件的读写。obj文件可以存储物体表面的颜色信息,并能将颜色信息在计算机屏幕上进行显示。
       obj3.0文件格式支持直线、多边形、表面和自由形态曲线。直线和多边形通过它们的点来描述,曲线和表面则根据它们的控制点和依附于曲线类型的额外信息来定义,这些信息支持规则和不规则的曲线,包括那些基于贝塞尔曲线(Bezier)、B样条(B-spline)、基数(Cardinal/Catmull-Rom)和泰勒方程(Taylor equations)的曲线。
   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文件不包含面的颜色定义信息,不过可以引用材质库,材质库信息储存在一个后缀是".mtl"的独立文件中。mtl文件是obj文件附属的材质库文件,材质库中包含材质的漫射(diffuse),环境(ambient),光泽(specular)的RGB的定义值,以及反射(specularity),折射(refraction),透明度(transparency)等其它特征。mtl文件同obj文件一样,也可以用写字板打开,其中的关键字的含义如下表。

                                         mtl文件使用的关键字
关键字 含义
newmtl 定义新的材质组,后面参数为材质组名称
Ka,Kd,Ks,Ke 材质的环境,散射,镜面,放射参数,对应数据为r、g、b值
Ns 材质的光亮度
d,Tr 均可用于定义材质的Alpha透明度
sharpness,illum 材质的锐度(sharpness)和照明度(illumination)
Ni 材质的光密度(optical density)
Tf 材质的透射滤波(transmission filter),对应数据为r,g,b值
map_Ka、map_Kd
map_Ks
材质的环境,散射和镜面贴图,对应数据为贴图文件名称
refl 材质的反射属性

文件举例:

某个导出的obj文件用写字板打开后内容如下:

# file <triangle.obj>
g vertexmodel00
# Number of vertices: 293048
v 40.5378265380859 -84.7280731201172 1162.36376953125
v 40.9424514770508 -84.2486419677734 1162.36071777344
……
# Number of normals: 293048
vn 0.677130043506622 -0.571913063526154 0.4630446434021
vn 0.674357652664185 -0.56704968214035 0.47296553850174
……
# Number of texture pixels: 301907
vt 0.133205691973368 0.135992889404297
vt 0.132944258054097 0.135982394748264
……
mtllib triangle.mtl
usemtl m1
g trianglemodel00
# Number of triangles: 582260
f 1/1/1 5/2/5 4/3/4
f 4/3/4 3/4/3 1/1/1
# end of file
上面“f 1/1/1 5/2/5 4/3/4”指定三角面的每个顶点的顶点坐标(v)、纹理坐标(vt)、法线向量(vn)的索引号,索引号分别用左斜线“/”隔开。

mtl文件用写字板打开后内容如下:

# Materials for the file <triangle.obj>
newmtl m1
Ka 0.5 0.5 0.5
Kd 0.5 0.5 0.5
Ks 0.5 0.5 0.5
Tf 0.5 0.5 0.5
illum 1
d 1
Ns 6
sharpness 60
Ni 1
map_Kd triangle_image.bmp
# end of file
上面“map_Kd triangle_000_image.bmp”指定镜面贴图为triangle_image.bmp,该图像文件由彩色相机采集的图像经过处理得到。
三维反求与变形检测实验室
地址:山东省胶州市国家级经济开发区汇英街2号
电话:0532-67750531
Q Q:1107445821
邮箱:xjqd3drdm@163.com
西青院科技研发部网络中心 鲁ICP备12018880号