pdf文档
基础
GPU处理流程
以下是渲染管线流程中的主要几个步骤:
(顶点坐标变换)一旦顶点坐标被转换到eye space 中,就需要判断哪些点是视点可见的。位于viewing frustum 梯形体以内的顶点,被认定为可见,而超出这个梯形体之外的场景数据,会被视点去除(Frustum Culling,也称之为视锥裁剪)。这一步通常称之为“clip(裁剪)”,识别指定区域内或区域外的图形部分的过程称之为裁剪算法。
Primitive Assembly,图元装配,即将顶点根据primitive(原始的连接关系),还原出网格结构。网格由顶点和索引组成,在之前的流水线中是对顶点的处理,在这个阶段是根据索引将顶点链接在一起,组成线、面单元。之后就是对超出屏幕外的三角形进行裁剪,想象一下:一个三角形其中一个顶点在画面外,另外两个顶点在画面内,这是我们在屏幕上看到的就是一个四边形。然后将该四边形切成两个小的三角形。
光栅化:决定哪些像素被集合图元覆盖的过程(Rasterization isthe process of determining the set of pixels covered by a geometric primitive)。经过上面诸多坐标转换之后,现在我们得到了每个点的屏幕坐标值(Screen coordinate),也知道我们需要绘制的图元(点、线、面)。但此时还存在两个问题,问题一:点的屏幕坐标值是浮点数,但像素都是由整数点来表示的,如果确定屏幕坐标值所对应的像素?问题二:在屏幕上需要绘制的有点、线、面,如何根据两个已经确定位置的2 个像素点绘制一条线段,如果根据已经确定了位置的3 个像素点绘制一个三角形面片?
Pixel operation 又称为Raster Operation,是在更新帧缓存之前,执行最后一系列针对每个片段的操作,其目的是:计算出每个像素的颜色值。在