基于Qt的OpenGL编程(3.x以上GLSL可编程管线版)---(十五)obj模型加载

本文介绍了在Qt 5.8.0环境下,如何自定义实现基于OpenGL的OBJ模型加载,以替代使用Assimp库。文章提供了一个简易的模型导入程序,支持包含材质文件的.obj模型。讲解了.obj和.mtl文件格式,并给出了模型读取的关键代码。需要注意的是,此程序适用于纯三角形面的.obj模型,并要求mtl文件路径为相对路径。
摘要由CSDN通过智能技术生成

Vries的原教程里,对于模型载入,使用的是一种非常流行的模型加载库Assimp,可以方便的加载obj,fbx,3ds等常见的模型格式文件,在visual studio2015里,我照原教程进行了Assimp的配置,程序成功运行。在Qt中,把Assimp当作外库进行导入,试了很多种方法也不可以,万般无奈之下,我自写了一个基于Qt平台的简易模型导入程序,仅针对简易obj模型进行解析导入。

https://learnopengl-cn.github.io/03%20Model%20Loading/01%20Assimp/关于Assimp库的内容与常见模型只是请看Vries的原版教程)

 

Qt开发平台:5.8.0

编译器:Desktop Qt 5.8.0 MSVC2015_64bit

 

本程序源代码

百度网盘链接:https://pan.baidu.com/s/1w60NPe69ySSqzkQ6o0BeVA 密码:dmud

csdn下载连接https://download.csdn.net/download/z136411501/10611540

一,程序截图

1.1 开启光照
1.2 关闭光照
1.2 关闭光照
1.3 线性渲染

 

1.4 比武台
1.5 坦克
1.6 基地

二,obj模型解释

  这里借用一下另外一个学习可编程管线OpenGL的网站里,对obj模型的解释,网站原链接如下:

http://www.opengl-tutorial.org/cn/beginners-tutorials/tutorial-7-model-loading/

 相对于原链接所介绍的简易OBJ模型,我增添了一些内容,主要是材质文件mtllib的使用,

 

  2.1 OBJ文件示例

  在原作者的示例obj文件中,增添材质属性的使用,大概是这个模样:

# Blender3D v249 OBJ File: untitled.blend
# www.blender3d.org

mtllib cube.mtl

#
# object Arch41_039
#

v 1.000000 -1.000000 -1.000000
v 1.000000 -1.000000 1.000000
v -1.000000 -1.000000 1.000000
v -1.000000 -1.000000 -1.000000
v 1.000000 1.000000 -1.000000
v 0.999999 1.000000 1.000001
v -1.000000 1.000000 1.000000
v -1.000000 1.000000 -1.000000
vt 0.748573 0.750412
vt 0.749279 0.501284
vt 0.999110 0.501077
vt 0.999455 0.750380
vt 0.250471 0.500702
vt 0.249682 0.749677
vt 0.001085 0.750380
vt 0.001517 0.499994
vt 0.499422 0.500239
vt 0.500149 0.750166
vt 0.748355 
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值