# games101_02 **Repository Path**: mo-si/games101_02 ## Basic Information - **Project Name**: games101_02 - **Description**: 实心三角形的渲染和MSAA - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-01-25 - **Last Updated**: 2022-03-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # games101_02 这里的实现和软渲染器的实现差不多。主要还是说一下 SSAA和MSAA。 这两种方法都是来反走样的,SSAA的思想很简单。考虑走样产生的原因:采样不足,也就是像素点不够,那么就用更多的像素点来采样,但是一个机器的分辨率是固定的,无法改变,那就将一个像素分割为多个子像素,每一个像素都计算一个颜色值,最后平均起来就行。因为每一个子像素都需要计算颜色值,即运行一遍shader程序,因此,该方法来实现反走样很耗时间。 MSAA:也是采用多个子像素,但是并不是每一个子像素都要进行颜色值的计算,我们只算一个像素的颜色值,然后通过其子像素在整个像素中的覆盖率,来决定最终的颜色,也就是:颜色*覆盖率。这里采用更大的深度缓冲来存储子像素的深度值,遍历一个像素中的子像素,来确定,最终有多少个子像素可以显示,来求得覆盖率。有一个问题需要考虑的就是,两个三角形的交界处,此处的像素中的子像素,有着两个三角形的颜色值,需要把它们混合起来。因此这里采用的是颜色值的累加,也就是,那个像素的颜色值,要由计算得到的两个颜色值加起来。