一、OpenGL是什么?
1、OpenGL是一种应用程序编程接口,它是一种可以对图形硬件设备特性进行访问的软件库。
2、OpenGL被设计为一个现代化的、硬件无关的接口,因此我们可以在不考虑计算机操作系统或窗口系统的前提下,在多种不同的图形硬件系统上,或者完全通过软件的方式实现OpenGL接口。
3、OpenGL自身并不包含任何执行窗口任务,或者处理用户输入的函数。
4、OpenGL没有提供用于表达三维物体模型,或者读取图像文件的操作。我们需要通过一系列的几何图元(点,线和三角形,以及path)来创建三维空间物体。
5、OpenGL API 是过程性的,不是描述性的,即OpenGL不是面向对象的,所以OpenGL无法利用面向对象的特性。使用的时候只需要:程序与OpenGL的实现链接就可以了。
6、OpenGL 的实现可以是软件实现,也可以是硬件实现。
这里需要注意:
(1)OpenGL 主要为我们定义了用来操作图形和图片的一系列函数的API,需要注意的是OpenGL本身并非API
(2)OpenGL API是过程性的,不是描述性的。
二、OpenGL 的实现方式:
三、OpenGL 的用途:
视频、图形、图片处理,2D/3D游戏引擎开发,科学可视化,医学软件的开发,CAD(计算机辅助技术),AR,VR
四、OpenGL ES和OpenGL 的关系:
1、OpenGL ES 是OpenGL 的子集,针对手机、PDA和游戏主机嵌入式设备而设计。
2、OpenGL ES 是从OpenGL 裁剪定制而来的,去除了glBegin/glEnd,四边形(GL_QUADS)、多边形(GL_POLYGONS)等复杂图元等许多非绝对必要的特性,剩下最核心有用的部分。可以理解成是一个在移动平台上能够支持OpenGL 最基本功能的精简规范。