Chapter 2 – The Graphics Rendering Pipeline 图形渲染管线

2.4 光栅化

基于转换后的投影顶点与其相关联的着色数据(全都来自于几何处理阶段),下一阶段的目标就是找到所有位于图元中的像素,例如正在被绘制的三角形。我们将这个过程称为光栅化,而它又被细分为两个功能性子阶段:三角形设置(也被称为图元装配)与三角形遍历。如下图所示。

三角形是最常用的图元,所以我们在这里将其称为三角形设置与三角形遍历,但光栅化也能够处理点或者线段。光栅化也被称为扫描转换(scan conversion),因为其将位于屏幕空间的二维顶点与其对应的z值(深度值)以及不同的着色信息转换为屏幕上的像素。光栅化也可以被认为是几何处理与像素处理之间的同步点,因为光栅化中,三个顶点将组成三角形并最终被传输至像素处理阶段。

而三角形是否与像素重叠则取决于你如何设置GPU的管线。例如,你使用点采样(point sampling)来决定像素是否位于三角形的内部。那么我们将采样每一个像素的中心点,如果中心点位于三角形内部,那么相对应的像素也被认为处于三角形的内部。你也可以给予每个像素使用多个采样点,例如超采样与多重采样抗锯齿技术。不过还有另一种方式来使用传统的光栅化,其定义为,如果像素有一部分与三角形重叠,那么该像素就位于三角形的内部。

2.4.1 三角形设置

在这个阶段将计算三角形的微分,边缘等式以及其他数据。而这些数据会被用于三角形遍历,也是为了将几何阶段提供的不同的着色数据进行插值。这一阶段的任务将由硬件自身来完成。

2.4.2 三角形遍历

在这个阶段会检测每一个像素的中心(或者说每一个采样点)是否被三角形覆盖,而像素中被三角形覆盖的部分会生成一个fragment。在第五章我们会介绍更为复杂的采样方法。而寻找哪一个采样点或者哪一个像素位于三角形,这一过程被称为三角形遍历。而三角形中我们所生成的每一个fragment,其属性都由三个三角形的顶点插值而来。这些熟悉将包括fragment的深度,与其他从几何阶段传输而来的着色数据。同时,在这个阶段硬件会进行在三角形中进行透视纠正插值(perspective-correct interpolation)。所有位于图元内部的像素或者采样点将被传输至像素处理阶段。

留下评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据