在OpenGL中任何事物都在3D空间中,但是屏幕和窗口是一个2D像素阵列,所以OpenGL的大部分工作都是关于如何把3D坐标转变为适应你屏幕的2D像素。3D坐标转为2D坐标的处理过程是由OpenGL的图形渲染管线完成的。图像渲染管线可以被划分为两个主要部分:第一个部分把你的3D坐标转换为2D坐标,第二部分是把2D坐标转变为实际的有颜色的像素。
渲染管线接收一组3D坐标,然后把它们转变为你屏幕上的有色2D像素。渲染管线可以被划分为几个阶段,每个阶段需要把前一阶段的输出作为输入。所有这些阶段都是高度专门化的,它们能简单地并行执行。由于它们的并行执行的特征,当今大多数显卡都有成千上万的小处理核心GPU,在GPU上为每一个阶段运行各自的小程序,从而在图形输送管道中快速处理你的数据。这些小程序叫做着色器。有些着色器允许开发者自己配置,用我们自己写的着色器替换默认存在的。这样我们就可以更细致地控制渲染管线的特定部分,因为它们运行在GPU上,所以它们也会节约宝贵的CPU时间。着色器是用OpenGL着色器语言(OpenGL Shading Language)GLSL写成的。