OpenGL学习笔记(一)

龙云尧个人博客,转载请注明出处。

CSDN地址:http://blog.csdn.net/michael753951/article/details/71043190

个人blog地址:http://yaoyl.cn/nehe_1/

因为实验需要,我要使用OpenGL搭建一个仿真驾驶环境。因为之前没有接触过OpenGL的相关知识,淦哥推荐通过NEHE来进行学习,之后会零零散散做一些笔记用来进行记录。学习的博客参见【【翻译】NeHe OpenGL 教程】。

创建新的C++

因为实验需要,我需要使用C++进行整个项目的编写。实验之前,我们需要先知道怎么用VS搭建一个窗口程序,这里我参考了【【win32】vs2010的窗体程序Helloworld】。

需要注意的是,在实验中,不推荐直接按照博客中使用L对字符串直接进行强制转换的方式,这种方法在之后学习OpenGL过程中会出现很多不可避免的问题。同时这种方式在输出中文的时候也会出翔错误,这个不是我们想看到的。所以我们还需要进行相关的设置。

设置方法这里我们参考【VS2005中关于char[]转换成LPCWSTR的问题】。

设置完成以后,我们就能很正常的输出字符串了,也不再需要在字符串前面加上L进行强制转换,之后进行NEHE学习的时候也能更加简单。

实验环境搭建

我在实验开发中使用的是VS2015专业版进行开发。需要使用到的所有库文件和环境搭建可以参考【VS2015下OpenGL库的配置】,环境搭建完成之后,尝试include某些库头,如果没有报错,那就说明环境搭建成功。

可能出现的问题

实验过程中,最好从教程中,一个函数一个函数向你的项目中添加,如果一次性添加太多的话,报错太多可能会让你很崩溃。

在添加函数的过程中,在开始调用PDB文件之后,可能会出现很多的“无法查找或打开PDB文件”错误信息,为了解决这个问题,你可以参考【Visual Studio “无法查找或打开PDB文件”解决方法 】。

如果在环境搭建过程中还出现了其他问题,试着参照【配置OpenGL时遇到的一些问题】进行解决。

逻辑图

经过仔细阅读源码以及理解,整个NEHE第一课的代码框架结构如下。

理解过程中,我们其他的目前可以不用很掌握,但是一定要清楚,在本次项目中,作者将OpenGL的着色描述表定义为 hRC 。要让您的程序能够绘制窗口的话,还需要创建一个设备描述表。Windows的设备描述表被定义为 hDC DC将窗口连接到GDI(Graphics Device Interface图形设备接口)。而RC将OpenGL连接到DC变量 hWnd 将保存由Windows给我们的窗口指派的句柄。最后,程序的实例保存在hInstance中(实例)

通过上面的关系,我们能够更加容易的理解窗口的建立与注销的过程中,作者代码中每一步所做的目的和意义。

实验结果

在读完代码之后,我们知道本次实验中仅仅只是建立一个640*480的窗口。并没有任何内容显示,另外因为我们在初始化设置中(InitGL这个方法中定义的)将屏幕的初始RGB值设置为(0.0f, 0.0f, 0.0f, 0.5f),所以程序运行的结果如图所示。

你可能感兴趣的:(OpenGL)