Hello OpenGL

Introduction

  • OpenGL 本身是对图像绘制 API 的 specification,定义了各个方法的参数和返回值。其实现由具体硬件环境(尤其是显卡)决定。

  • 早版本 OpenGL 设计为 immediate mode,开发者直接调用图像绘制方法。随着 OpenGL 为开发者提供越来越多的定制空间,从 3.3 版本开始 OpenGL 鼓励采用 core-profile mode 开发,这是 OpenGL specification 的一个移除了旧接口的子集。

  • OpenGL 向下兼容,核心机制并不随版本更新改变,因此上手时学习 OpenGL 3.3 而非某个最新版本是合理的。

  • OpenGL 是一个巨大的状态机,每一刻的状态是一个 context,用户通过操作 context 来改变 OpenGL 的绘制模式。

Installation on Windows

  • GLFW 是常用的跨平台 OpenGL 开发库之一,提供对窗口、OpenGL contexts 和。安装地址:https://www.glfw.org/download.html

    • 也可以使用 CMake 从源代码编译所需的库文件。

  • (以 Visual Studio 为例)新建空白项目,在项目 properties 中配置 GLFW 的头文件路径和库文件路径,以及对 GLFW 库文件的依赖。

  • 在 Windows 上,Visual Studio 的 Microsoft SDK 自带 OpenGL 实现的库 opengl32.lib。需要把这一库文件添加到项目依赖。

  • 对 OpenGL 接口的具体实现要通过函数指针和特定接口在 runtime 确定,使用每个接口时都这么做会使代码繁琐。GLAD 是一个基于 web 的 code generator,在指定 OpenGL 版本等信息后就可以自动生成一份 loader 代码用于项目中。

    • 生成后下载 zip 文件并解压得到 include 和 src 文件夹。将前者的内容加入项目的 include 范围,将后者包含的 glad.c 文件加入项目。

Hello OpenGL

  • 以下代码能生成一个墨绿色的窗口,并在按下 esc 时关闭窗口。

Reference

[1] https://learnopengl.com/Getting-started

Last updated

Was this helpful?