抗锯齿是怎么给电脑游戏磨皮的?它有啥秘密?(附小视频)

1. 高分辨率的屏幕能否自动消除锯齿?

当显示器的分辨率或显示屏的PPI(每英寸的像素数)足够大时,人眼将无法看清具体的像素点,但相邻像素之间的色彩差异也会产生明显的错落感,高分辨率/PPI由于像素变得非常细腻,可以同比缩小锯齿,但仍不能完全消除锯齿。

2. 超级采样抗锯齿(SSAA)

超级采样抗锯齿(Super-Sampling Anti-aliasing,简称SSAA)此是早期抗锯齿方法,比较消耗资源,但简单直接,先把图像映射到缓存并把它放大,再用超级采样把放大后的图像像素进行采样。

一般选取2个或4个邻近像素,把这些采样混合起来后,生成的最终像素,令每个像素拥有邻近像素的特征,像素与像素之间的过渡色彩,就变得近似,令图形的边缘色彩过渡趋于平滑。再把最终像素还原回原来大小的图像,并保存到帧缓存也就是显存中,替代原图像存储起来,最后输出到显示器,显示出一帧画面。

3. 多重采样抗锯齿(MSAA)

多重采样抗锯齿(MultiSampling Anti-Aliasing,简称MSAA)是一种特殊的超级采样抗锯齿(SSAA)。MSAA首先来自于OpenGL。具体是MSAA只对Z缓存(Z-Buffer)和模板缓存(Stencil Buffer)中的数据进行超级采样抗锯齿的处理。可以简单理解为只对多边形的边缘进行抗锯齿处理。这样的话,相比SSAA对画面中所有数据进行处理,MSAA对资源的消耗需求大大减弱,不过在画质上可能稍有不如SSAA。

4. 快速近似抗锯齿(FXAA)

快速近似抗锯齿(Fast Approximate Anti-Aliasing)是传统MSAA(多重采样抗锯齿)效果的一种高性能近似值。它是一种单程像素着色器,和MLAA一样运行于目标游戏渲染管线的后期处理阶段,但不像后者那样使用DirectCompute,而只是单纯的后期处理着色器,不依赖于任何GPU计算API。

来源:微信号 - 啃芝士(kenzhishi):陈小浩,转载此文目的在于传递更多信息,版权归原作者所有。
原文链接:https://mp.weixin.qq.com/s/MmAyKcLdym1TQSRBr_L1Kw

推荐阅读