什么是锯齿
图像的边缘有明显的像素边界,看起来不自然,好像锯齿一样
什么是抗锯齿
消除或者减轻锯齿
为什么会出现锯齿
计算器屏幕上显示的图像由一个个像素组成,绘制斜线的时候需要按照一个方向填充一个个像素的颜色。分辨率越大像素越多,分辨率越小,像素越少。
像素很少的时候,连续的几个像素看起来就会形成锯齿。分辨越率大锯齿越弱。
抗锯齿技术可以分3类
空间抗锯齿(Spatial anti-aliasing)
从高分辨率的渲染结果里进行采样,填充到低分辨率的结果图像,比如从800×400大小的图形采样像素填充到400×200大小的图像里
填充低分辨率结果时,计算需要在高分辨率结果里采样的像素,并且采样周边像素,对它们进行混合后作为结果填充到目标像素
后处理抗锯齿(Post-process anti-aliasing)
基于图像处理的抗锯齿
时域抗锯齿(TAA)
分帧进行抗锯齿
Spatial anti-aliasing方案
Supersampling anti-aliasing (SSAA)
超级采样抗锯齿,又叫全屏采样抗锯齿(full-scene anti-aliasing (FSAA)),第一个被开发出来的抗锯齿技术,有2个缺点
1 会影响水平、竖直的线,这没必要也导致不清晰
2 处理整张图性能消耗高,不好用在实时渲染
Multisample anti-aliasing (MSAA)
多重采样抗锯齿,每个像素有多个子样本,当前像素的颜色会输出到这些子样本上,当子样本被填满时,所有的子样本做一次均值作为当前像素的最终结果。
这个功能由硬件支持。4x MSAA的采样方式:4x MSAA的采样方式
; CSAA and EQAA
检测多边形哪些地方可能有锯齿,然后只对这些地方进行超级采样
后处理抗锯齿方案
MLAA and FXAA
快速近似抗锯齿,找到图像的边缘,对边缘进行平滑处理
缺点:相机移动时,高频区域会闪烁
Temporal anti-aliasing (TXAA)
NVIDIA提供了一种称作TXAA的抗锯齿技术,实际上就是TAA+MSAA。通过引入额外的深度信息来实现在延迟渲染上使用MSAA,可以用在实时渲染。
Enhanced subpixel morphological anti-aliasing (SMAA)
和FXAA类似的原理,但是更精细的边缘检测
时域抗锯齿TAA
TAA(Temporal Anti-Aliasing)是时间性抗锯齿,是最常用的图像增强算法之一,这是一种基于着色器的算法,使用运动矢量组合两帧,以确定在何处对前一帧进行采样。
在每一帧对屏幕区域内的像素进行一个抖动操作,这样当连续的多个帧的数据混合起来以后,就相当于对每个像素进行了多次采样。
他将采样点从单帧分布到多个帧上,使得每一帧并不需要多次采样增加计算量,但TAA往往会盲目地跟随移动物体的运动矢量,从而造成屏幕上的细节模糊不清。
参考资料
https://www.hp.com/us-en/shop/tech-takes/what-is-anti-aliasing
https://en.wikipedia.org/wiki/Multisample_anti-aliasing
https://therealmjp.github.io/posts/msaa-overview/
https://zhuanlan.zhihu.com/p/342211163
Original: https://blog.csdn.net/ak47007tiger/article/details/126377664
Author: T.D.C
Title: 【高级渲染特性】抗锯齿技术介绍
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/633659/
转载文章受原作者版权保护。转载请注明原作者出处!