[UnityShader入门精要读书笔记]03.GPU流水线之光栅化阶段

上一章节详细描述了几何阶段的步骤,这一章来记录一下光栅化阶段的详细步骤。

1.三角形设置。这个阶段会计算光栅化一个三角网格所需的信息。具体来说,上一个阶段输出的都是三角网格的顶点,即我们得到的是三角网格的每条边的两个端点。但如果要得到整个三角网格对像素的覆盖情况,我们就必须计算每条边上的像素坐标。为了能够计算边界像素的坐标信息,我们就需要得到三角形边界的表示方式。这样一个计算三角网格的表示数据的过程就叫做三角形设置。

2.三角形遍历。这个阶段将会检查每个像素是否被一个三角网格所覆盖。如果被覆盖的话,就会生成一个片元。这个过程就是三角形遍历,也被成为扫描变换。

[UnityShader入门精要读书笔记]03.GPU流水线之光栅化阶段

3.片元着色器。这是另一个非常重要的可编程着色器阶段,此阶段的输入是上一阶断对顶点信息插值得到的结果,输出是一个或者多个颜色值。

[UnityShader入门精要读书笔记]03.GPU流水线之光栅化阶段

4.逐片元操作。此阶段是渲染流水线的最后一步,此阶段的主要任务:

   (1)决定每个片元的可见性。例如深度测试,模版测试。

    (2)如果一个片元通过了所有的测试,就需要把这个片元的颜色值和已经存储在颜色缓冲区中的颜色进行合并。

 

 

什么是DrawCall?

通俗的讲就是CPU调用图像变成接口,如OpenGL中的glDrawElements命令或者DirectX中的DrawIndexedPrimitive命令。

[UnityShader入门精要读书笔记]03.GPU流水线之光栅化阶段