每个顶点操作由运行于顶点处理器之上的顶点着色程序即 Vertex Shader
进行处理,每个片断操作由运行于片断处理器之上的片断着色程序即
Fragment Shader 进行处理,这两部分处理可以由用户编程实现,因此也称
为可编程的。而对于目前各厂商的显卡而言,数据流程中其它位置的处理则都
是依靠图像卡硬件提供的固定流水处理程序进行的,也就是说他们不可编程。
顶点着色程序主要是取代了固定渲染流水线图形硬件的几何变换与光照计算模
块,完成顶点坐标变换,顶点法向量变换,纹理坐标生成与变换等操作而今随
着图形卡可编程技术的提高,在顶点处理程序中也可以处理更多的其他操作,
譬如 Shader Model3.0(SM3)支持顶点程序中读取纹理数据,可以在顶点程
序中计算光照模型等。片断着色程序取代了固定渲染流水线图形硬件的每片断
处理模块,它对每一个像素进行处理,主要工作是读取纹理数据,计算当前像
素对应的输出颜色等,而当前片段着色程序的输出可以不限于颜色,而可以支
持多个输出通道,并且直接输出到纹理中,这样就可以很大程度上减少 CPU 与
GPU 之间的数据交换次数。在图形学应用中,虽然实时图形应用可以只使用顶
点着色程序或者片断着色程序中的一种,甚至都不使用而依旧使用固定渲染流