# 光栅化 Rasterization

我们目前已经实现的是将场景中的物体经过 MVP 变换 (Model-View-Projection) 变换到二维平面上,接下来就是要进行光栅化。
首先我们需要找一个包围盒,常见的 AABB 包围盒采用该三角形最大最小的 XY 值作为顶点,在包围盒内我们可以应用光栅化函数
取每一个像素的中心,如果中心在三角形内,则着色,反之不着色
但是这样我们会发现图形是硬边缘,锯齿感比较严重

# 抗锯齿 Anti Aliasing

方案有对原图形进行模糊再光栅化等
常用的有
MSAA
将每一个像素进行细分,用子像素在三角形内存在的数量决定该像素的颜色
FXAA

TAA

# 深度缓冲

对于图元的遮挡问题,可以采用画家算法,即对三角形进行排序,先光栅化远的,再用近的像素覆盖
不过如果出现互相覆盖的三个三角形,就无法解决
因此有深度缓冲
对每一个像素维护一个深度最值,遍历所有图元进行光栅化,若新的像素比原来离摄像机更近,则采用新像素,并更新深度值
因为需要知道光栅化的像素的深度值,所以需要通过顶点深度值进行插值
但是这种方案无法实现半透明