学习OpenGL最大的难点并不是它本身有多难(虽然它确实很难啃),而是要保持足够的热情和动力,所以打算开个专题来记录本人学习OpenGL的一点心路历程,以博客驱动的方式保持自己的热情。
想要学习OpenGL,首先就要搭建开发环境。因为OpenGL本身只是一组规范,并不是函数的真正实现,这些规范只会规定函数吃什么参数,最终返还什么结果,而里面的实现方式可以多种多样,只要合乎规范就行。所以一般的OpenGL的具体实现由显卡驱动的厂商来实现,不同厂商实现的库可能有所不同。厂商的库拿来使用会比较麻烦(函数位置编译时无法确定,需要运行时查询),且厂商的实现一般通过动态链接库(*.dll)提供。还好有第三方库简化了麻烦的过程,这就是我们需要导入的环境。我们会用的第三方库有两个:
- GLFW 负责绘图函数的获取
-
GLEW 负责创建绘图上下文和窗口系统管理
这两个库最好都是下载32位的,因为两个都是32位的组合起来才有作用,网上说法,并没试过64位。
除了这两个库以外,我们还需要一个编译环境,我使用的是VS2017。
在下载了这两个库的压缩包后,先解压得到这两个文件夹,
glew&glfw
然后打开VS2017,新建C++空白项目,命名为OpenGLExcercise01,然后为这个项目新增一个C++文件,命名为main.cpp,最终如图:
OpenGLExcercise01
打开这个项目的属性,我们需要稍作修改的项为C/C++里的常规和链接器里的常规和输入:
C/C++常规链接器
注意,我们需要配置的是所有配置和所有平台:
1.C/C++ 常规
我们对附加包含目录点选编辑,在里面点选新行,选中这两个解压文件路径下的include文件夹:
image.png
2.链接器
2.1常规
对附加库目录点选编辑,点选新行,选中这两个解压文件路径下的lib文件夹,由于我试过glfw里的lib-vc2017不起作用,不知为何,但选这vc-2015就起作用了:
2.2输入
在附加依赖项点选编辑,新增三个依赖项,分别为:opengl32.lib、glfw3.lib、glew32s.lib
至此,开发环境搭建完成,可以尝试导入这些库的头文件(*.h)看会不会报错:
#define GLEW_STATIC //表示静态链接glew库
#include<GL/glew.h>
#include<GLFW/glfw3.h>
如果没有报错,那环境就搭好啦!可喜可贺可喜可贺!
参考资料:
[1] Learn OpenGL