obj模型文件的格式

带纹理的obj模型

一般带纹理的obj模型需要有以下三个文件,分别是.obj文件,.mtl纹理库文件,还有纹理贴图(这里是.jpg)如图所示:
在这里插入图片描述
用记事本或者其他工具打开查看.obj文件的内部结构如下图所示:
详细讲解下.obj文件结构

  1. #代表文件的注释,用来描述具体的内容注释,当读到#时,可跳过该行。
  2. mtllib xxx.mtl代表obj文件中包含纹理库信息(如右图所示,纹理信息后面详细讲解)
    在这里插入图片描述
v  -8.6007 1.3993 10.0000
  1. 格式:v (vertices) x y z
    意义:每个顶点的坐标
vt 0.0000 1.0000 0.0000
  1. 格式:vt (vertex texture) u v或者vt u v w 通常是0-1
    意义:纹理坐标
vn 0.0000 0.0000 -1.0000
  1. 格式:vn (vertex normal) x y z
    意义:顶点法矢方向
f 1/1/1 2/2/1 3/3/1 
  1. 格式 :f v/vt/vn v/vt/vn v/vt/vn顶点索引 / 纹理坐标索引 / 顶点法向量索引
    意义:构成的面
    注意:其中面的构成可以只由:v、v/vt、v//vn(两斜杠)、v/vt/vn等情况构成,且顶点的个数也不一定要为3个,可以大于等于3如下所示:表示为5边形的面结构
f 1 2 3 4 5
仅包含顶点f v1 v2 v3 ....
包含顶点和纹理f v1/vt1 v2/vt2 v3/vt3 ...
包含顶点纹理和法线f v1/vt1/vn1 v2/vt2/vn2 v3/vt3/vn3 ...
包括顶点和法线f v1//vn1 v2//vn2 v3//vn3 ...
  1. Group声明用于组织模型的单元(element)以及简化数据操作
o:代表object,表示不同的对象名称
对象是由组构成,比如一个城镇是一个对象,它有许多房子,每个房子都被认为是一个组,而每个房子又包含了很多子组,比如窗户,们,墙,屋顶等。

g:代表group,顶点或者三角面片的集合名称
组是由一系列面构成,这些面使用同样的属性,比如同样的材质。

s:代表smooth
s 1
...
s 2
...
smooth shading还可以被关闭
s off
``
`

# 材质引用
一个材质库是一个伴随.obj文件的独立文件,它为每个组定义了材质。.obj文件常常会包含一个材质库文件,有时它还会包含多个材质库文件。

包含mtl文件
```cpp
mtllib xxx.mtl
  ...

使用mtl文件

usemtl xxx
  ...

mtl材质文件

# 
# Wavefront material file
# Converted by the DEEP Exploration  2.1.12.1218
# Right Hemisphere, LTD
# http://www.righthemisphere.com/
# 
//定义材质以newmtl开头
newmtl inside //newmtl之后的都是材质的定义,它的范围是直到另一个新的newmtl出现,或该文件的结束才停止。
Ka 0.4 0.4 0.4//Ka - 环境光
Kd 0.587609 0.587609 0.587609//Kd-漫反射颜色
Ks 0.071744 0.071744 0.071744//Ks-镜面颜色
illum //1illum-光照模型
Ns 32

newmtl outside
Ka 0 0 0
Kd 1 1 1
Ks 0.384296 0.194061 0.174387
illum 2
//每个材质允许使用多照明模型。枚举如下:
//0. 色彩开,阴影色关
//1. 色彩开,阴影色开
//2. 高光开
//3. 反射开,光线追踪开
//4. 透明: 玻璃开 反射:光线追踪开
//5. 反射:菲涅尔衍射开,光线追踪开
//6. 透明:折射开 反射:菲涅尔衍射关,光线追踪开
//7. 透明:折射开 反射:菲涅尔衍射开,光线追踪开
//8. 反射开,光线追踪关
//9. 透明: 玻璃开 反射:光线追踪关
//10. 投射阴影于不可见表面
Ns 64//指定材质的反射指数,定义了反射高光度。64是反射指数值,该值越高则高光越密集,一般取值范围在0~1000。
//map_Ka - 环境光贴图
map_Kd cup.jpg//map-Kd - 漫反射颜色贴图
//map_Ks - 镜面颜色贴图

设置完成后打开obj文件得到的模型如下所示:
在这里插入图片描述

推荐参考库文件

tiny_obj_loader

tiny_obj_loader

assimp

assimp

猜你喜欢

转载自blog.csdn.net/weixin_44478077/article/details/126689388
今日推荐