顶点着色器
顶点着色器实现了顶点操作的通秀可编程方法
顶点着色器的输入:
- 着色器程序 : 描述顶点上执行操作的顶点着色器程序源代码或可执行文件
- 顶点为着色器输入(属性):用顶点数组提供的每个顶点的数据
- 统一变量(uniform):顶点着色器使用的不变数据
- 采样器: 代表顶点着色器使用纹理的特殊统一变量类型
顶点着色器可以用来通过矩阵变换位置、计算照明公式来生成逐顶点颜色以及生成或者变换纹理坐标等基于顶点的传统操作。此外,顶点着色器由应用程序规定,所以它可以用于执行自定义计算,实施新的变换、照明或者较传统的固定功能管线所不允许的基于顶点的效果。
图元装配
顶点着色器之后,OpenGL ES3.0图形管线的下一阶段是图元装配。
图元(Primitive)是三角形、直线或者精灵等几何对象。图元的每个顶点被发送到顶点着色器的不同拷贝。在图元装配期间,这些顶点被组合成图元。
光栅化
此阶段绘制对应的图元。光栅化是将图元转化为一组二维片段的过程,然后,这些片段由片段着色器处理。这些二维片段代表着可在屏幕上绘制的像素。
片段着色器
片段着色器为片段上的操作实现了通用的可编程方法,对光栅化阶段生成的每个片段执行这个着色器,采用如下输入:
- 着色器程序:描述片段上执行操作的片段着色器程序源代码或可执行文件。
- 输入变量:光栅化单元用插值为每个片段生成的顶点着色器输出
- 统一变量:片段着色器使用不同的不变数据
- 采样器:代表片段着色器所用纹理的特殊统一变量类型