OpenGL入门——配置环境

发布时间 2023-08-05 12:01:29作者: 一只小瓶子

OpenGL有意将建一个上下文(Context)和一个用于显示的窗口的操作抽象出去,所以我们就得自己处理创建窗口,定义OpenGL上下文以及处理用户输入。

有一些特别针对OpenGL创建窗口和上下文用来渲染的库,比如GLUT,SDL,SFML和GLFW。

这里先选择使用跟主页 - LearnOpenGL CN (learnopengl-cn.github.io)官网上一样的GLFW。

下载地址:Download | GLFW,我的编译环境是VS2017,所以我下载的是glfw-3.3.8, 库是lib-vc2017

在配置GLFW之前,需要先做一件事

因为OpenGL只是一个标准/规范,具体的实现是由驱动开发商针对特定显卡实现的。

由于OpenGL驱动版本众多,它大多数函数的位置都无法在编译时确定下来,需要在运行时查询。开发者需要在运行时获取函数地址并将其保存在一个函数指针中供以后使用。比如:

// 定义函数原型
typedef void (*GL_GENBUFFERS) (GLsizei, GLuint*);
// 找到正确的函数并赋值给函数指针
GL_GENBUFFERS glGenBuffers  = (GL_GENBUFFERS)wglGetProcAddress("glGenBuffers");
// 现在函数可以被正常调用了
GLuint buffer;
glGenBuffers(1, &buffer);

每个函数都要重复这个过程,非常繁琐复杂。有些库可以简化这个过程,GLAD是目前最新,也是最流行的库。GLAD可以根据我们需要的OpenGL版本加载所有相关的OpenGL函数。

GLAD下载地址:glad.dav1d.de,配置参考OpenGL:配置glad_六月的翅膀的博客-CSDN博客

 

 配置完GLAD就可以开始配置GLFW了

 

GLFW配置和使用:

1. 将下载的头文件目录和库目录添加到项目中

2. 链接glfw3.lib

 3. 添加头文件//

#include <glad/glad.h>
#include <GLFW/glfw3.h>

 GLAD的头文件包含了正确的OpenGL头文件(例如GL/gl.h),所以需要在其它依赖于OpenGL的头文件之前包含GLAD

 

后面就可以开始创建我们的渲染窗口啦~