obj文件和mtl文件格式说明

以一个大理石地板的3d模型为例,如下图:

       其包含三个文件,模型文件marble.obj,材质文件marble.mtl,及纹理贴图文件marble.png。obj构成了模型的主体,mtl为其材质,材质中有纹理贴图,对应png的图片。

 

obj和mtl文件本质是文本文件,由一行行文字组成,以notepad++或其他文本编辑器打开,会显示一行一行的文本信息,下面是对这些文本信息的解释说明。

OBJ文件

mtllib marble.mtl
#
# object Box001
#
v  -38.9310 0.0000 39.5241
v  -38.9310 0.0000 -40.7471
v  40.4302 0.0000 -40.7471
v  40.4302 0.0000 39.5241
v  -38.9310 3.9873 39.5241
v  40.4302 3.9873 39.5241
v  40.4302 3.9873 -40.7471
v  -38.9310 3.9873 -40.7471
# 8 vertices

vn 0.0000 -1.0000 -0.0000
vn 0.0000 1.0000 -0.0000
vn 0.0000 0.0000 1.0000
vn 1.0000 0.0000 -0.0000
vn 0.0000 0.0000 -1.0000
vn -1.0000 0.0000 -0.0000
# 6 vertex normals

vt 1.0000 0.0000 0.0000
vt 1.0000 1.0000 0.0000
vt 0.0000 1.0000 0.0000
vt 0.0000 0.0000 0.0000
# 4 texture coords

o Box001
g Box001
usemtl 07___Default
s 2
f 1/1/1 2/2/1 3/3/1 
f 3/3/1 4/4/1 1/1/1 
s 4
f 5/4/2 6/1/2 7/2/2 
f 7/2/2 8/3/2 5/4/2 
s 8
f 1/4/3 4/1/3 6/2/3 
f 6/2/3 5/3/3 1/4/3 
s 16
f 4/4/4 3/1/4 7/2/4 
f 7/2/4 6/3/4 4/4/4 
s 32
f 3/4/5 2/1/5 8/2/5 
f 8/2/5 7/3/5 3/4/5 
s 64
f 2/4/6 1/1/6 5/2/6 
f 5/2/6 8/3/6 2/4/6 
# 12 faces
  • #:注释标记
  • object:将一个obj模型分为多个模块,进行储存管理
  • mtllib:描述了模型所使用的材质文件所在的路径
  • usemtl:当前所用材质
  • v:顶点
  • vt:顶点的纹理坐标
  • vn:顶点的法线
  • o:对象(object)名称
  • g: 组(group)名称
  • s:光滑组(Smoothing group),处理面之间的光照信息来达到光滑效果
  • f:面

其中面f需要拿出来单说,例如f 1/1/1 2/2/1 3/3/1:

空格隔开的三组数据分别表示三角形片元的三个顶点,在每一组数据中,每一个数字又分别代表着顶点/纹理坐标/法线所在行的行数。

以1/1/1为例:

  • 1指向v的第一行,此例中为-38.9310 0.0000 39.5241
  • 1指向vt的第一行,此例中为0.0000 -1.0000 -0.0000
  • 1指向vn的第一行,此例中为1.0000 0.0000 0.0000

 

MTL文件

newmtl 07___Default
	Ns 10.0000
	Ni 1.5000
	d 1.0000
	Tr 0.0000
	Tf 1.0000 1.0000 1.0000 
	illum 2
	Ka 0.5882 0.5882 0.5882
	Kd 0.5882 0.5882 0.5882
	Ks 0.0000 0.0000 0.0000
	Ke 0.0000 0.0000 0.0000
	map_Ka marble.png
	map_Kd marble.png
  • newmtl:代表材质,以下皆为该材质的属性参数
  • Ns:高光反射系数,值越高则高光越密集
  • NI:指定材质表面的光密度,即折射值
  • d:表示物体融入背景的数量,取值范围为0.0~1.0,取值为1.0表示完全不透明,取值为0.0时表示完全透明
  • Tr:定义材质的alpha透明度
  • Tf:材质的透射滤波(transmission filter),对应数据为r,g,b值
  • illum: 照明度(illumination),后面可接0~10范围内的数字参数
  • Ka: 环境光(ambient color)
  • Kd: 散射光(diffuse color)
  • Ks: 镜面光(specular color)
  • Ke:放射光(emissive color)
  • map_Ka:环境光所采样的纹理贴图路径,在.obj模型文件的根目录下
  • map_Kd:漫反射光所采样的纹理贴图路径
     
  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值