一、什么是OpenGL?
OpenGL是我们用来操作图形图片等所使用的API,但是其本身并不是API,而是Khronos Group开发维护的一个规范。Opengl定义了每个函数的入参和出参,具体实现的细节大多数是由显卡厂商完成。
二、OpenGL的两种模式
OpenGL有两种模式:
(1)immediate mode 立即渲染模式
该模式是一种简单的绘图方式,学习简单,但是效率低,大多数功能都在库中,开发者计算的自由没有那么灵活。
(2)core profile 核心模式
该模式灵活高效,但是学习起来比较难,开发者要懂图形编程。
三、OpenGL本身是个大的状态机
当我们使用OpenGL的时候,我们会设置一些选项,操作一些缓冲,然后使用当前的环境去渲染。
四、OpenGL窗口库
因为每个操作系统的窗口不同,所以OpenGL把窗口管理给抽象出去了,我们可以通过一些库来帮助我们创建窗口。
(在windows平台,我们也可以使用GLU(OpenGL Utility library),叫做OpenGL工具函数库,自己把windows窗口改成opengl的窗口。)
一些常见的OpenGL窗口库。
(1)GLFW 轻量级的OpenGL框架,C语言开发,支持OpenGL和OpenGL ES,支持linux和windows跨平台。
(2)GLUT 全称 OpenGL Utility Toolkit,这部分函数以glut开头,版本较老。
(3)FreeGlut 是glut的一个开源库,版本稳定,可以直接替代glut
FreeGlut和GLFW的区别:FreeGlut只提供了一种用户输入,即回调函数,而GLFW提供了两种用户输入:回调函数和轮询。
五、OpenGL 和 OpenGL ES
OpenGL ES 是OpenGL的一个子集,全称是OpenGL Embedded system ,裁剪了OpenGL的多边形图元。
六、GLFW库编译
源代码下载:https://www.glfw.org/
该工程由Cmake构建,需要依赖Cmake来生成工程。
安装好Cmake后,
安装上述步骤后,我们在build文件夹下就可以看到VS的工程 GLFW.sln。可以编译对应的bebug库和release库。
编译完成后这个路径 build\src\Debug 下会生成 glfw3.lib 库。
七、GLAD和GLEW
他们功能类似,都是opengl的扩展库,GLAD相对较新,都提供了跨平台,低版本驱动的动态链接。OpenGL程序的运行需要依赖显卡驱动的libGL库。
八、GLEW 库下载地址:https://glew.sourceforge.net/
九、OpenGL各库直接的关系:
图来自https://www.cnblogs.com/chencarl/p/10722839.html
标签:窗口,入门,OpenGL,菜鸟,glut,模式,GLFW,Cmake From: https://www.cnblogs.com/132818Creator/p/17379849.html