前言
本人在学习opengl的时候在配置opengl环境的时候踩过了很多坑,所以在这里希望把自己配置环境的过程总结归纳给大家,希望后续的同学入门学习opengl的时候可以更快的配置好环境上手编写代码,跳过无必要的踩坑时间。当然这些都是自己学习过程中的一些个人经验,可能会有一些错误的话也请大家包涵指正。
库介绍
这里使用的是glfw和glad这两个库,这里可能有的同学会问:为什么学习opengl不需要用到opengl的库呢?实际上,OpenGL本身并不是个API,它仅仅是一个由Khronos组织制定并维护的规范(Specification)。OpenGL规范严格规定了每个函数该如何执行,以及它们的输出值。至于内部具体每个函数是如何实现的,是由OpenGL库的开发者自己决定的。也就说Opengl并没有规定其实现的细节,只需要输入和输出的结果规范一样,具体的opengl库可以使用不同的实现。所以大家可能会经常听到glut、freeglut、glfw、glad等词,这些实际上都是opengl的一些相关的库,用于窗口管理或者函数加载。
因为opengl规定的只是渲染相关的一些规则,并没有对窗口显示和事情等窗口相关的操作进行规定,所以为了让渲染结果可以在窗口上显示出来,这就需要使用到 glfw, 它是一个轻量级的,开源的,跨平台的library。支持OpenGL及OpenGL ES,用来管理窗口,读取输入,处理事件等。(实际上glut和freeglut也是干着这样的活)
而由于OpenGL驱动版本众多,它大多数函数的位置都无法在编译时确定下来,需要在运行时查询。所以开发者需要在运行时获取函数地址并将其保存在一个函数指针中供以后使用。这就是glad的作用:用于opengl的函数加载使用。
配置GLFW
首先从 glfw官网 上下载源码包。同时我们需要在 cmake官网下载并安装cmake。CMake是一个工程文件生成工具,使用cmake可以根据自己的选择对源代码生成不同的IDE的工程文件。
glfw源码包下载完成后对其进行解压,解压后可以得到如下图所示的目录(以下称之为glfw根目录):