SRP_17_FXAA


FXAA 是对 Gamma 空间下的 Luma 进行处理的

image-20221222185312972

image-20221222185317786

image-20221222185324424

因为我们对绿色比较敏感,我们可以直接用绿色通道的值来代替 luma

image-20221222185335290

image-20221222185339931

FXAA 原理

  • Step1:通过查找纹理本身及周边4个纹素

  • Step2:找到亮度最高和最低的纹素和一个范围

image-20221222185409459

image-20221222185414684

image-20221222185420791

Step3:计算BlendFactor

image-20221222185456919

加入斜对角的权重计算

image-20221222185506130

斜对角的权重低于临边权重,是临边权重的一半

image-20221222185516995

image-20221222185526837

Step4:确定 BlendDirection

image-20221222185548444

  • 水平方向上:左右相加减去两次中间值,并取绝对值,作为水平方向判断依据
  • 垂直方向上:与上面相同

image-20221222185600846

加上斜向方向的计算,可以提高精度

image-20221222185617636

红色为计算出的水平边,绿色为垂直边

image-20221222185630051

  • 如果是水平的边,我们应该按照垂直方向进行Blend;如果是垂直的边,我们应该按照水平方向Blend
  • 详细来说:我们应该按照水平的正方向还是水平的负方向进行Blend呢?通过水平的正负梯度大小来决定

image-20221222185641649


文章作者: 血魂S
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 血魂S !
  目录