将FXAA添加到现有渲染器中很简单:它作为最终渲染通道[1]应用,仅将渲染图像作为输入,并输出抗锯齿版本。其主要思想是检测渲染图像中的边缘并使其平滑。这种方法快速有效,但会模糊纹理上的细节。该算法有两个版本Quality(侧重抗锯齿的质量)和Console(侧重于计算效率),之前已经实现过Console版本,这里实现Quality版本。相关原理如下所述:
假设一个场景首先被渲染成纹理图像,与窗口相同的分辨率。然后渲染一个覆盖整个窗口的矩形来显示这个纹理。对于这个矩形的每个像素,FXAA算法在所谓的片段着色器中执行。
1. 首先,我们需要将RGB图像转换为灰度图,转换公式如下所示: