一、OpenGL简介
OpenGL本身并不是一个API,它仅仅是一个由Khronos组织制定并维护的规范,规范严格规定了每个函数该如何执行,以及它们的输出值。
由于OpenGL仅仅只是个规范,OpenGL库的开发通常是显卡的生产商来完成。具体的OpenGL库允许使用不同的实现,只要其功能和结果与规范相匹配。
OpenGL自身是一个巨大的状态机(State Machine):一系列的变量描述OpenGL此刻应当如何运行。OpenGL的状态通常被称为OpenGL上下文(Context)。我们通常使用如下途径去更改OpenGL状态:设置选项,操作缓冲。最后,我们使用当前OpenGL上下文来渲染。
二、核心模式与立即渲染模式
立即渲染模式(Immediate mode,也就是固定渲染管线):这个模式下绘制图形很方便,并且容易使用和理解,这是因为OpenGL的大多数功能都被库隐藏起来。但是同时也缺少了很多的灵活性,并且效率低下,因为随着时间推移,开发者迫切地需要对绘图细节有更多的掌控,从而有了OpenGL的核心模式。
核心模式:当使用OpenGL的核心模式时,OpenGL迫使我们使用现代的函数。当我们试图使用一个已废弃的函数时,OpenGL会抛出一个错误并终止绘图。现代函数的优势是更高的灵活性和效率,然而也更难于学习,因为其要求使用者真正理解OpenGL和图形编程。因此教程主要使用OpenGL3.3以上的核心模式。
三、相关库介绍
窗口管理:glfw是glut 的升级版。
函数加载:glad是glew的升级版。
参考链接
[1]https://blog.csdn.net/qq_38446366/article/details/115328051
[2]https://blog.csdn.net/watersevenmmfx/article/details/106250323