OpenGL是一种应用程序编程接口,是一种规范,其本身并没有任何代码实现,但对其规范却存在者相应的实现,比如GLUT、GLEW、GLFW等。
OpenGL被设计为一个现代化的,硬件无关的接口。因此我们可以在不考虑计算机操作系统或者窗口下同的前提下,在多种不同的图形硬件系统上,或者完全通过软件的方式实现OpenGL的接口。OpenGL的最早版本1.0是1994年7月发布的,通过Silicon的图形计算机系统开发出来。
一个用于渲染图象的OpenGL程序需要执行的主要操作有:
- 从OpenGL的几何图元中设置数据,用于构建形状。
- 使用不同的着色器(shader)对输入的图元数据执行计算操作,判断它们的位置、颜色,以及其他渲染属性。
- 将输入图元的数学描述转换为屏幕位置对应的像素片元(fragment)。这一步也称作光栅化(rasterization)。
- 最后,针对光栅化过程产生的每个片元,执行片元着色器(fragment shader),从而决定这个片元的最终颜色和位置。
- 如果有必要,还需要对每个片元执行额外操作,例如判断片元对应的对象是否可见,或者将片元的颜色与当前屏幕位置的颜色进行融合。
常见概念
渲染(render):表示计算机从模型创建最终图像的过程。
着色器(shader):GPU上运行的代码程序。
顶点着色器(vertex shader):处理顶点数据。
片元着色器(fragment shader): 处理光栅化后的片元数据。
像素(pixel):显示器上最小的可见单元。