在一次面试的过程中,面试官问到了我这个问题。当时答得不是特别完善,回来翻阅了一下红宝书,总结如下:
由于完整的绘制管线包括处理几何数据和像素数据两条,这里只考虑几何数据。如果以后有机会用到处理像素数据,再考虑。
(1)获得顶点数据
如果使用了显示列表,就从显示列表中获得被保存的数据;如果没有使用显示列表,则直接获得顶点数据
(2)求值器
在某些情况下,比如处理参数化曲线,则需要通过求值器这个步骤,根据控制点计算出表面顶点。
(3)基于顶点的操作
将前两步中传送过来的顶点数据进行操作。执行的操作有:矩阵变换,生成纹理坐标,根据设置的光照生成颜色值
(4)图元装配
图元装配将顶点装配成几何图元,另一个主要内容是进行裁剪,透视处理,视口变换等等。
(5)光栅化
光栅化是把几何数据和像素数据转换为片断的过程。每个片断方块对应于帧缓冲区的一个像素。
(6)片断操作
在数据实际存储到帧缓冲区之前,还需要对片断做些操作。比如生成纹理单元,雾计算,alpha测试,深度测试等等。