OpenGL,GLUT,FreeGLUT,GLFW,GLEW,GLAD,GL3W,GLAD,GLM,GLSL的区别详解
很多同学在初学计算机图形学时,都要去配置OpenGL环境,其中涉及多个库的选择和一些专有名词,让人十分困惑。本文对OpenGL相关的一些库和专有名词进行一些介绍,希望能够帮助到你。另外,如果你正在配置OpenGL而不知道选择那些库,或者配置环境总是出错(我当时也弄了好久),我推荐GLEW+GLFW+GLM(这是许多现行OpenGL工程和教程所使用的配置),并推荐你看这篇文章WIN10+VS2019+GLFW和GLEW搭建OpenGL开发环境简易版。
如果你想进一步学习OpenGL,我推荐LearnOpenGL网站和OpenGL编程指南(又称‘OpenGL红宝书’)这本书。
In a word:
OpenGL: 开放图形库,或者说是一个图形标准。
GLUT,FreeGLUT,GLFW : 完成窗口管理,事件处理等OpenGL不包含但必要的工作。
GLEW, GLAD, GL3W: 获取OpenGL拓展函数的地址,并绑定到对应的函数指针上,方便对函数的调用。
GLSL:OpenGL的着色器语言。
GLM:OpenGL数学库,封装了矩阵和变换等的一些操作。
OpenGL : Open Graphics Library,人称开放图形库,是最为广泛运用的一个图形库。但实际上,OpenGL并不是一个’库’,因为你从他的官网无法直接下载到二进制链接库或者源代码。那么OpenGL是什么呢?OpenGL是一个’标准’ 或者’规范’(Specification)。它 声明(只是声明了函数,并没有实现) 了一些C语言函数,例如glBegin(),glColor3f(),glVertex2f()(注意上面函数都有参数,这里只是没有打出来,希望不会误导你)等等,合理地调用这些函数可以绘制你从电脑屏幕上看到过的任何内容。上面提到OpenGL声明函数,而没有实现函数,那么函数的实现在哪儿呢?答案是在显卡的驱动程序里面,意味着你需要一些方法来获取这些函数,在后文会提到。
GLUT:OpenGL Utility Toolkit,人称OpenGL实用工具集。GLUT是一个’库