之前讲述的都是将OpenGL Pipeline当中一个整体来看的,接下去,我们开始探索其内部了。
一. 顶点处理
三维空间中的物体,从几何角度来说,是由多个顶点构成的,所以OpenGL Pipeline的第一个步骤就是顶点处理。计算每个顶点的属性,比如这个顶点在当前光照条件下应该是什么颜色的,在当前的视野下应该做的坐标变换等等。在这个步骤,每个顶点都是被独立处理的,不存在相互依赖关系。本阶段的输出还是顶点。
二. 图元处理
三维空间中的物体,从几何角度来说,可以分解成点、线段、三角形等,我们称这些基础形状为图元Primitive。在这个阶段,顶点组合成图元,确定这些图元是面向观察者还是背向观察者,如果图元部分在视野范围之外,那要进行相应的裁剪,即去除看不见的顶点,引入新的边界处顶点,组成数个新的图元等等。本阶段的输出是由顶点组成的图元包括点、线段和三角形。
三. 光栅化
最终的绘制效果是我们在显示器上看到的一个个像素pixel,所以,我们还需要将图元光栅化,光栅化的结果是多个fragment,fragment和像素在位置上一一对应,只是具有更多的属性。有时候,我们会将Fragment和像素混用。
-点: 根据点的大小,计算出这个点包括哪几个像素
-线: 根据线长和线宽,计算最