几何阶段主要负责大部分多边形操作和顶点操作,包括顶点着色、坐标变换、生成图元、投影、裁剪、屏幕映射等过程,其中顶点着色、坐标变换由顶点着色器完成。
1.顶点着色器
顶点着色器(Vertext shader)是完全可编程的,主要用于实现顶点的坐标变换、顶点着色两大功能。
顶点着色的输入来自于CPU,包括顶点属性(顶点坐标、法线、纹理坐标等),顶点着色器的处理单位为顶点,输入进来的每个顶点都会调用一次顶点着色器。
坐标变换,包括平移、旋转、缩放等变换。
2.生成图元
生成图元这个步骤,很多书籍并未提及,在OpenGL 编程指南里渲染流程中有一步骤就是图元装配,图元装配的第一步就是生成图元,剩下还有投影、裁剪、屏幕映射,所以在此特地说明一下。之后的裁剪操作是以图元为单位进行处理的,因为不同的图元所用的裁剪算法有所差别。
CPU将顶点数据传给GPU时,同时还会传递顶点索引信息,这个索引信息就是来确定顶点怎样来构成图元。