LearnOpenGL 模型加载篇(二)

大哥们哪位知道,LearnOpenGL 模型加载篇(二)
最新回答
っ半醉巴黎°

2024-12-03 01:01:28

教程提供的obj文件,除了纹理,还带了一个mtl文件,通过文本编辑器打开,可见其内容为Wavefront Material Template Library(MTL)文件格式。该文件用于存储模型的材质信息,如漫反射、环境光、镜面反射等。文件中每个newmtl定义了一个新的材质,后跟材质属性设置。属性包括Kd代表漫反射颜色,具体的值如0.640000 0.640000 0.640000,是RGB颜色值,通常在0到1之间的小数,表示材质的漫反射颜色。例子中每个通道红、绿、蓝的值都是0.640000,对应一种中性偏灰的漫反射颜色。若设置了漫反射贴图(map_Kd),渲染器会使用这个贴图覆盖此处定义的颜色,例如截图中的arm材质,指明漫反射贴图为arm_dif.png。

而map_Kd、map_Bump、map_Ks等开头的字段为纹理贴图引用路径,告知渲染器使用哪些贴图渲染模型。这些纹理贴图包括漫反射贴图、凹凸贴图和镜面反射贴图。

每个newmtl下的字段设置对应于材质属性,如newmtl Arm为材质,定义其属性,如高光度、漫反射颜色、凹凸贴图等。这些定义指引渲染器如何渲染模型的不同部分。

通常,这种文件能被解析并用于渲染引擎,明确模型中各部分材质属性与纹理信息。

教程中,通过从材质数组获取材质对象,推测在此步骤中读取mtl中的材质信息。

使用Blender将蒂法的模型导出为obj格式,导出后默认附带一个mtl文件。由于此文件内无映射贴图,需手动添加贴图的相对路径。

最后,通过创建模型类并输入tifa.obj路径,完成模型的加载。