先贴一张渲染管线的图,然后我们再开始:
图片出处链接
1:图片中,渲染管线大致被分为6个步骤,其中有3个步骤是蓝色背景。这3个蓝色背景的步骤,就是可编程渲染管线中用户可以自定义的部分。(一般来说,我们只自定义顶点着色器和片段着色器,几何着色器一般使用默认的即可)
2:(为了阐述方便,我们就利用上面的图来讲解Vertex与Fragment的关系)
Vertex:就是步骤1(Vertex Shader)中的三个点。
Fragment:就是步骤5(Fragment Shader)中的像素单元所对应的信息单元。
此处我们进一步解释一下。一个像素(Pixel)对应一个Fragment,但二者并不等同。因为Fragment还包含了其他信息,比如这个像素的颜色,这个像素的深度值等等等等。
形象一点来说,一个包含了诸多关于此位置像素的信息的单元,我们称之为该位置的Fragment。
3:要注意,Fragment Shader是在光栅化之后。在Vertex Shader阶段,我们要处理的数据只是3个顶点,而在Fragment Shader阶段,我们要处理的则是(大致上)被这三个顶点围住的所有像素对应的Fragments。Vertex的数量远远少于Fragment。