概述
固定管线的OpenGL在导入模型时会出现一系列报错,本篇文章提供了一个能让程序编译运行的解决方案,并非完美解决方案
文章目录
- 前置内容
- 正文
- 1.缺少编译头文件
- 2.缺少模型
- 函数不安全
- 3DS相关报错
- 最后阶段
- 总结
前置内容
我们的环境是建立在正确配置了工程项目的基础之上,可以看以前的文章
【OpenGL相关】用高版本visual studio打开老版本的OpenGL工程文件可能会遇到的问题
还有就是在Visual Studio installer里面安装MFC
正文
1.缺少编译头文件
我们遇到的第一个问题自然是缺少编译头文件StdAfx.h、缺少3DS.h、vectorlib.h等头文件的问题。
我们把工程里的StdAfx.h文件,从工程项目里面添加到老师给的include文件夹里面
可以看见添加StdAfx.h以后,我们缺少的头文件基本上都在这个文件夹里面了,接下来就是链接外部库
顺带一提,我的工程是用VS2022创建的,项目里面的文件都是用导入现有项创建的(只需要把.h和.cpp文件引入即可)
到项目属性的VC++目录,选择外部链接库
找到老师工程的include路径,将路径加入到外部包含目录里
2.缺少模型
老师的模型文件放在data文件夹的3ds文件夹里,工程里面是没有data文件夹的,如果忽视这一点的话,就算配好了项目,直接调试的时候会提示没有模型可以导入。
这个data文件夹可以在老师的“运行目录”里面找到,找到以后拖到项目里就行(用的是相对路径)
函数不安全
做到这一步以后可以直接运行WINDOWS调试器,这个时候会出现部分函数不安全的Error(和scanf、scanf_s在VS的报错是同一类)
在如图所示的地方加上_CRT_SECURE_NO_WARNINGS
3DS相关报错
继续调试程序,出现了3DS相关的报错。
需要在老师的include文件夹下面,把3ds.cpp文件 复制到工程文件夹,用导入现有项导入工程,最后结果如下图所示
只要工程目录里有这两个文件,加上之前解决的一些问题,基本上就可以开始调试了
最后阶段
出现类似的错误可以无视,只需要点上边的继续就行,出现弹窗点确认(这就意味着整个程序是在bug上运行的,非常不稳定)
最后运行结果如图所示
如果还有问题的话,可以用排除法排除有问题的模型
总结
整个工程已经是非常老的框架了,固定管线的效果也不尽人意,花了大力气配好的环境却做不出好的效果,但好歹是能跑了。所以学有余力的同学可以去了解一下现代OpenGL
最后
以上就是活力山水为你收集整理的【OpenGL相关】OpenGL导入模型问题前置内容正文总结的全部内容,希望文章能够帮你解决【OpenGL相关】OpenGL导入模型问题前置内容正文总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复