OpenGL | obj文件mtl文件
创始人
2025-05-28 14:08:33
0

一、OBJ文件

1.OBJ文件概述

  • OBJ是一种3D模型文件,因此不包含动画、材质特性、贴图路径、动力学、粒子等信息。

  • OBJ文件主要支持多边形(Polygons)模型。虽然OBJ文件也支持曲线(Curves)、表面(Surfaces)、点组材质(Point Group Materials),但Maya导出的OBJ文件并不包括这些信息。

  • OBJ文件支持三个点以上的面。

  • OBJ文件支持法线和贴图坐标。

2.OBJ文件解析

OBJ文件不需要任何种文件头(File Header),尽管经常使用几行文件信息的注释作为文件的开头。OBJ文件由一行行文本组成,注释行以一个“井”号(#)为开头,空格和空行可以随意加到文件中以增加文件的可读性。

有字的行都由一两个标记字母也就是关键字(Keyword)开头,关键字可以说明这一行是什么样的数据。多行可以逻辑地连接在一起表示一行,方法是在每一行最后添加一个连接符(\)。注意连接符(\)后面不能出现空格或tab格,否则将导致文件出错。

(1)举例

下方是在maya中创建cube后导出的cube.obj数据:

# This file uses centimeters as units for non-parametric coordinates.mtllib Cube.mtl
g default
v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 0.500000
v -0.500000 0.500000 0.500000
v 0.500000 0.500000 0.500000
v -0.500000 0.500000 -0.500000
v 0.500000 0.500000 -0.500000
v -0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 -0.500000
vt 0.375000 0.000000
vt 0.625000 0.000000
vt 0.375000 0.250000
vt 0.625000 0.250000
vt 0.375000 0.500000
vt 0.625000 0.500000
vt 0.375000 0.750000
vt 0.625000 0.750000
vt 0.375000 1.000000
vt 0.625000 1.000000
vt 0.875000 0.000000
vt 0.875000 0.250000
vt 0.125000 0.000000
vt 0.125000 0.250000
vn 0.000000 0.000000 1.000000
vn 0.000000 0.000000 1.000000
vn 0.000000 0.000000 1.000000
vn 0.000000 0.000000 1.000000
vn 0.000000 1.000000 0.000000
vn 0.000000 1.000000 0.000000
vn 0.000000 1.000000 0.000000
vn 0.000000 1.000000 0.000000
vn 0.000000 0.000000 -1.000000
vn 0.000000 0.000000 -1.000000
vn 0.000000 0.000000 -1.000000
vn 0.000000 0.000000 -1.000000
vn 0.000000 -1.000000 0.000000
vn 0.000000 -1.000000 0.000000
vn 0.000000 -1.000000 0.000000
vn 0.000000 -1.000000 0.000000
vn 1.000000 0.000000 0.000000
vn 1.000000 0.000000 0.000000
vn 1.000000 0.000000 0.000000
vn 1.000000 0.000000 0.000000
vn -1.000000 0.000000 0.000000
vn -1.000000 0.000000 0.000000
vn -1.000000 0.000000 0.000000
vn -1.000000 0.000000 0.000000
s off
g pCube1
usemtl initialShadingGroup
f 1/1/1 2/2/2 4/4/3 3/3/4
f 3/3/5 4/4/6 6/6/7 5/5/8
f 5/5/9 6/6/10 8/8/11 7/7/12
f 7/7/13 8/8/14 2/10/15 1/9/16
f 2/2/17 8/11/18 6/12/19 4/4/20
f 7/13/21 1/1/22 3/3/23 5/14/24

(2)关键字说明

  • #:注释标记

  • mtllib:描述了模型所使用的材质文件(mtl)所在的路径

  • v:顶点

  • vt:顶点的纹理坐标

  • vn:顶点的法线

  • o:对象(object)名称

  • g: 组(group)名称

  • s:光滑组(Smoothing group),处理面之间的光照信息来达到光滑效果

  • usemtl:当前所用材质

  • f:面

其中面f需要拿出来单说,例如f 7/13/21 1/1/22 3/3/23 5/14/24表示用四个点画一个面,空格隔开的四组数据分别表示平面的四个顶点,在每一组数据中,每一个数字又分别代表着顶点/纹理坐标/法线的索引,所以f 7/13/21 1/1/22 3/3/23 5/14/24中第一个点(7/13/21)的数据为:

顶点

纹理坐标

法线

(0.500000,-0.500000,-0.500000)

(0.125000,0.250000)

(-1.000000,0.000000,0.000000)

二、mtl文件

1.mtl文件概述

我们知道.OBJ文件用来存储模型信息,观察上方cube.obj第一行代码,可以看到材质库文件为mtllib Cube.mtl

.mtl文件(Material Library File)是材质库文件,描述的是物体的材质信息,ASCII存储,任何文本编辑器可以将其打开和编辑。一个.mtl文件可以包含一个或多个材质定义,对 于每个材质都有其颜色,纹理和反射贴图的描述,应用于物体的表面和顶点。

2.mtl文件解析

(1)举例

cube.mtl文件数据如下:

newmtl initialShadingGroup
illum 4
Kd 0.50 0.50 0.50
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00

(2)关键字说明

  • 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:漫反射光所采样的纹理贴图路径

相关内容

热门资讯

求职自荐书 求职自荐书范文  以下是由unjs小编为大家推荐的求职自荐书范文,欢迎大家借阅参考,求职自荐书范文。...
程序员简历 程序员简历15篇  光阴迅速,一眨眼就过去了,眼见着,找工作的时间马上到来,你的简历写好了吗?简历怎...
简历制作不要暴露你的求职动机 简历制作不要暴露你的求职动机  或是抱着学习的目的,或是为了优厚待遇,或是冲着企业名声,以上这些,无...
投简历邮件正文怎么写   现在很多用人单位都会要求求职者通过邮件投递简历的,那么,投简历邮件正文怎么写?下面就由小编给大家...
个人简历中技能特长怎么写 个人简历中技能特长怎么写  技能特长属于具体性描述,它需要全面、详细、有重点地将自身的技能、特长等核...
应届毕业生简历模板word格... 每一届大四学生都必须经历实习之旅才能正式毕业,只是,即将踏入社会的大四学生总纠结于实习简历表格要怎么...
面试特长爱好怎么写 很多简历模板中,都会要求求职者填写“爱好与特长”,其实用人单位会通过这些信息来判断求职者的个性。“爱...
个人简历中的自我评价范文精华...   简历中总是会有一份自我评价,这份自我评价怎么写呢?CN人才网小编整理20则范文。  自我评价一 ...
测试经理简历 测试经理简历模板  招聘者在对个人简历的审核上就是通过个人简历中你所体现出来的技能,让他们看到你的能...
应聘简历自我介绍 应聘简历自我介绍(精选10篇)  当来到一个陌生的地方时,我们不得不需要向他人介绍自己,自我介绍可以...
杜玉堂的简历 -管理资料 个人概况姓名:杜玉堂 性别:男 籍贯:山东曹县政治面貌:党员 学历:硕士 专业:细胞生物学 毕业院校...
数学教师个人简历(履历表)模... 个人基本资料姓  名出生日期1977-11-07性  别男婚姻状况未婚身  高170厘米体  重68...
简历特长爱好怎么写 简历特长爱好怎么写  简历特长爱好怎么写,往往的情况下面,我们会把简历中的特长和爱好写在同一个板块中...
应届生个人简历 应届生个人简历(精选10篇)  个人简历是求职者给招聘单位发的一份简要介绍。下面是小编收集整理的应届...
个人简历自荐信 个人简历自荐信范文(精选10篇)  导语:在如今这个时代,我们越来越经常使用自荐信,我们在写自荐信的...
新员工入职简历表 新员工入职简历表  时间一晃而过,眼见着,找工作的时间马上到来,让我们一起来学习写简历吧。简历怎么写...
个人简历的自我评价怎么写 个人简历的自我评价怎么写本人性格开朗、稳重、有活力,待人热情、真诚;工作认真负责,积极主动,能吃苦耐...
社区工作者空白个人简历表格下... 该内容已删除或未通过审核,请返回首页浏览其它页面,感谢你的理解,谢谢。
美术教师招聘简历模板免费下载   美术:泛指创作占有一定平面或空间,且具有可视性的艺术,就叫作美术。它的划分有多种,一般地包括四大...
护士个人简历封面 护士个人简历封面  如何撰写自己的简历,让招聘决策者过目不忘并留下深刻印象,从而为你带来面试机会,是...