OpenGL踩坑总结3----模型加载篇

1. assimp的dll丢失问题

  • 最粗暴的办法就是将dll拷贝到存放项目exe的文件夹中,但是每个工程都要这么做就有些麻烦,毕竟只是学习而不是实际开发。
  • 可以右键单击项目属性->配置属性->调试->环境中设置dll的路径,最好设置成相对路径,方便在另一台设备中运行代码。
  • 我的代码仓库中dll的相对目录为:
    • path = ..\..\OpenGLPackages\dlls\dlls_x64
    • path = ..\..\OpenGLPackages\dlls\dlls_x86
  • 由于这个仓库的项目都是debug开发模式,所以可以将这两个目录配置到系统的环境变量中,这样不用设置项目也能直接引用到dll

2. 教程代码的缺陷

  • 当导入没有mtl或者缺少贴图的obj模型,这个模型就是一团黑,所以需要修改教程的代码让它支持这种模型:
    • 在着色器代码中添加一个布尔变量,用来判断有没有贴图,没有mtl肯定就没有贴图,直接这么判断就好了
      图片说明
    • 在光照函数中判断是否有贴图,有就采样贴图,没有就设定一个默认的颜色。以平行光(DirectionLight)为例,代码如下:
      图片说明
    • Mesh类的Draw方法才是绘制模型的函数,需要设置着色器,所以在Draw方法中添加对是否有贴图的判断。不仅要设置has_texture,最好也设置下shininess,否则光照结果会出现异常。
      图片说明
    • 最后看下没有贴图的模型加载出来是什么效果,嗯,还不错!
      图片说明
全部评论

相关推荐

Cherrycola01:0实习 0项目 约等于啥也没有啊 哥们儿这简历认真的吗
点赞 评论 收藏
分享
03-28 19:11
铜陵学院 C++
有礼貌的山羊追赶太阳:太典了,连笔试都没有开始就因为HC满了而结束了,而且还卡你不让你再投其他部门的。
点赞 评论 收藏
分享
已oc 云智断更了好几天,也有一些话想说,继续更新一篇云智timeline 4.18 一面 半个小时后约二面 4.21二面 当晚 约hr面 4.23hr面 4.30 发offer之前美团的二面挂了,进入人才库,后面又被捞起来面试,4.30号 美团又一面,现在还没出一面结果感觉也不报什么希望,就算一面过了,还有二面,我经不起深入拷打,唉,真的,好难五一躺平了五天,吃吃玩玩睡睡~还要担心毕业,科研更是难,唉暑期可能就到此为止了,后面没有时间在这个上面了,要抓紧时间做科研,为了后面能出去实习。大厂,秋招再见!!!有一些感慨:4.1是我的第一次面试,美团,面试的时候紧张到浑身发...
daisy9542:我今晚也是美团一面,已经第六次了。我也面了其他的,没拿到 offer。但我想开了,要按照自己的节奏来,找暑期转正然后秋招大杀四方并不是唯一的出路,其实还有很多选择的,有 0 实习最后秋招拿 offer 了,也有不选择互联网去国企的外企的,考编的,创业的。现在的失败不代表以后的路都是黑暗的,只不过可能运气还没降临到头上。所以现在要做的,就是放平心态,提升自己,通过面试了解到自己的优点和不足,争取下次机会来了能好好抓住
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务