OpenGL渲染管线
定义:渲染管线是一系列数据处理过程,并且将应用程序的数据转换到最终渲染的图像。下面是渲染管线流程图:
从上图我们可以看出OpenGL首先接收用户提供的几何数据(顶点坐标、顶点纹理等),并且将它输入到一系列着色器阶段中进行处理,包括顶点着色、细分着色、几何着色,然后将它送入到光栅化单元。光栅化单元负责对所有剪切区域内的图元生成片元数据,然后对每个生成的片元都执行一次片元着色器。看起来好像很复杂,但是我们并不需要用到所有的着色阶段,事实上,只有顶点和片元着色器是必须的,细分和几何是可选的。下面我们就对每一个阶段进行详细的解释。
顶点数据
作为OpenGL渲染管线的第一个步骤,我们主要是做一些数据准备,涉及的数据有顶点坐标(必须)、顶点纹理坐标、顶点法向量坐标等,要传哪些数据是根据我们的需求而定的,不过在这些数据里面顶点坐标是必须的。需要注意的是OpenGL要的顶点数据并不是简单的像点A(1,2,3),我们需要在定义或者获取到点数据之后将它转化为缓存对象。将顶点数据转化为缓存对象之后就可以传递并进入到下一阶–段顶点着色器