图形渲染管线的整个处理流程可以被划分为几个阶段,上一个阶段的输出数据作为下一个阶段的输入数据,是一个串行的,面向过程的执行过程。每一个阶段分别在GPU上运行各自的数据处理程序,这个程序就是着色器
顶点数据:顶点的集合,顶点一般都是是三维坐标
基本图元(primitives):点,线段,三角形等,构成实体模型的基本单位
顶点着色器(Vertex Shader):包含对一些顶点属性的处理
基本图元装配(primitive assembly):把所有输入的顶点数据作为输入,输出制定的基本图元
几何着色器(geometry shader):把基本图元形式的顶点的集合作为输入,可以通过产生新顶点构造出新的基本图元来生成其他形状
细分着色器(Tessellation shaders):可以把基本图元细分为更多的基本图形,创建出更加平滑的视觉效果
光栅化(rasterization):像素化,把细分着色器输出的基本图形映射为屏幕上网格的像素点,生成供片元着色器处理的片段,光栅化包含一个裁剪操作,会舍弃超出定义的视窗之外的像素
片段着色器(Fragment Shader):计算出每一个像素点最终的颜色,通常片段着色器会包含3d场景的一些额外的数据,如光线,阴影等
测试与混合:对每个像素进行深度测试,alpha测试等并进行颜色混合,这些操作决定了屏幕视窗上每个像素点的最终的颜色以及透明度