OpenGL开发库介绍
OpenGL系列分为OpenGL标准版、ES版、SC。
OpenGL PC版为最全版本,一般由显卡厂商提供最全的支持。不同系统与OpenGL交互接口为WGL/GLX/AGL
在嵌入式设备中(比如手机、树莓派等等)使用简化版的OpenGL,即OpenGL ES(Embedded System)。系统窗口与OpenGL ES交互接口为EGL
在飞机、汽车等实时性要求比较高的情况下,OpenGL ES再次简化为OpenGL SC(Safety Critical Profile),只有十几个函数。
下表是开发所需要的库说明:
名称 | 功能 | 版本 | 备注 |
---|---|---|---|
GL | Graphic Library,图形程序库。OpenGL的主链接库。 | libGL.so.1.7.0 | |
GLU | OpenGL utility,扩展了GL库中3D数学部分。 | libGLU.so.1.3.1 | |
glut | OpenGL Utility Toolkit是一个处理OpenGL程式的工具库,负责处理和底层操作系统的调用以及I/O。(代替aux库的独立GUI) | libglut.so.3.11.0 | |
GLX | GLX是OpenGL Extension to the X Window System的缩写。它作为x的扩展,是x协议和X server的一部分,已经包含在X server的代码中了。GLX提供了x window system使用的OpenGL接口,允许通过x调用OpenGL库。OpenGL 在使用时,需要与一个实际的窗口系统关联起来。在不同平台上有不同的机制以关联窗口系统,在Windows上是WGL,在Linux上是GLX,在Apple OS上是AGL等。 | libGLX_nvidia.so.450.80.02 | |
EGL | EGL 是渲染 API(如 OpenGL ES)和原生窗口系统之间的接口。通常来说,OpenGL 是一个操作 GPU 的 API,它通过驱动向 GPU 发送相关指令,控制图形渲染管线状态机的运行状态,但是当涉及到与本地窗口系统进行交互时,就需要这么一个中间层,且它最好是与平台无关的。因此 EGL 被设计出来,作为 OpenGL 和原生窗口系统之间的桥梁。 | libEGL.so.1.1.0 | |
GLEW | glew(The OpenGL Extension Wrangler Library)是对底层OpenGL接口的封装,可以让你的代码跨平台。不同的显卡公司,也会发布一些只有自家显卡才支持的扩展函数,你要想用这些涵数,不得不去寻找最新的glext.h,有了GLEW扩展库,你就再也不用为找不到函数的接口而烦恼,因为GLEW能自动识别你的平台所支持的全部OpenGL高级扩展函数。也就是说,只要包含一个glew.h头文件,你就能使用gl/glu/glext/wgl/glx的全部函数。 | libGLEW.2.2.0 | |
glad | glad与glew作用相同,可以看作它的升级版。 | ||
freeglut | OpenGL Utility Toolkit主要用于创建OpenGL上下文、接收一些鼠标键盘事件等等。 | ||
glfw | Graphics Library Framework是Freeglut升级版,作用基本一样。 | libglfw.3.3 | |
GLUS | 一个开源的C库,它提供了一个硬件和操作系统抽象,以及使用OpenGL、opengles或OpenVG进行图形编程所需的许多函数。 |
通常来说glad和glfw配合使用。glew和Freeglut配合使用,比如OpenGL红宝书上面的例子。
说明:如果需要glu开头的函数,就需要包含GLU开发库,以此类推。
Ubuntu
安装开发库
1 |
|
Qt开发配置
1 |
|
Makefile
1 |
|
CMake
1 |
|
所有源代码地址:OpenGL
OpenGL开发库介绍
https://feater.top/opengl/introduction-of-opengl-library