GAMES101-Lecture 06

Antialiasing抗锯齿

Sampling theory采样理论

光栅化过程:在屏幕空间用一系列离散的点(像素的中心)进行是否在三角形内的采样。
采样可以发生在不同的位置、不同的时间。
GAMES101-Lecture 06_第1张图片
动画:在时间中采样
Sampling Artifacts(瑕疵):

  • 锯齿
  • 摩尔纹(如像素的奇数行和奇数列去除,但显示大小一样)
    GAMES101-Lecture 06_第2张图片
  • 车轮效应:人眼看到高速旋转的车轮旋转方向和实际方向相反。原因是人眼在时间中的采样跟不上运动的速度
  • ……

走样的本质原因:信号的变化太快以至于采样速度跟不上信号变换速度。

实现反走样(抗锯齿)的操作:在采样前先进行模糊(滤波)处理。
GAMES101-Lecture 06_第3张图片
GAMES101-Lecture 06_第4张图片
wrong:先采样再模糊

Frequency Domain频域

GAMES101-Lecture 06_第5张图片
频率 f = 1 / T f=1/T f=1/T

傅里叶级数展开:任何一个周期函数,都可以写成一系列正弦和余弦函数的线性组合以及一个常数项。
GAMES101-Lecture 06_第6张图片
f ( x ) = A / 2 + 2 A cos ⁡ ( t w ) / π − 2 A cos ⁡ ( 3 t w ) / 3 π + 2 A cos ⁡ ( 5 t w ) / 5 π − 2 A cos ⁡ ( 7 t w ) / 7 π + . . . . . . f(x)=A/2 +2A\cos{(tw)}/\pi-2A\cos{(3tw)}/3\pi+2A\cos{(5tw)}/5\pi-2A\cos{(7tw)}/7\pi+...... f(x)=A/2+2Acos(tw)/π2Acos(3tw)/3π+2Acos(5tw)/5π2Acos(7tw)/7π+......
说明:傅里叶级数展开与傅里叶变换紧密相连。

傅里叶变换:给定任何一个函数 f ( x ) f(x) f(x),可以通过复杂的操作让它变成另外一个函数 F ( x ) F(x) F(x)
傅里叶逆变换: F ( x ) F(x) F(x)通过逆变换又可以变回 f ( x ) f(x) f(x)
GAMES101-Lecture 06_第7张图片
对不同的频率函数以相同的频率进行采样:
GAMES101-Lecture 06_第8张图片
结论:对于不同频率函数采样的频率也需要有相应的频率。否则采样的频率会跟不上原始函数的频率。
GAMES101-Lecture 06_第9张图片
走样:用同样的频率采样两种频率不同的函数得出来的结果无法区分。(如图,采样蓝黑两个函数结果一致)

滤波:将某些特定的频率删去后对应信号发生的变化。
傅里叶变换可以把一个函数从时域变到频域。(左图时域,右图频域)

理解右图频域:中心为最低频率区域,周围为高频区域*(边界信息,因为边界左右信号发生的变化巨大)*。亮度越高,代表该区域信息越多。
频域十字线现象原因:在分析一个信号时会默认它为周期性重复信号。对于不重复信号,就认为他的右边界在重复左边的内容,下边界在重复上边的内容(无限叠图)。因为右边界和左边界不一致,边界变换会发生剧烈的信号变化,产生极其高的高频。
高通滤波:去除低频信号,高频信号可以通过。

低通滤波:低频信号可以通过,去除高频信号。
GAMES101-Lecture 06_第10张图片
GAMES101-Lecture 06_第11张图片
GAMES101-Lecture 06_第12张图片
滤波=平均=(卷积)
卷积操作:
GAMES101-Lecture 06_第13张图片
GAMES101-Lecture 06_第14张图片
定理:在时域上如果想对两个信号进行卷积,在对应信号的频域上,是两个信号的乘积。反之同理,时域的乘积是频域的卷积。
卷积两种方法:

  • 直接在时域上进行卷积。
  • 先通过傅里叶变换将时域变成频域,在频域上进行乘积操作,再通过傅里叶逆变换将变换后的频域变成时域。

GAMES101-Lecture 06_第15张图片
卷积后相当于进行了低通滤波,都变模糊了。
卷积核(滤波器):
GAMES101-Lecture 06_第16张图片
左图时域,右图频域:
GAMES101-Lecture 06_第17张图片
左图的盒子变大了,对应的频域变小了:
GAMES101-Lecture 06_第18张图片
原因:用的卷积核越大,图像越模糊,在频域上就是乘积的频率越小,图像越模糊。

采样=重复频域上的内容
右图是左图对应的频率图
GAMES101-Lecture 06_第19张图片
从时域来看:
对图(a)函数采样,相当于用图(a)函数乘以另外一个函数图©[只在一系列固定位置有值,其他位置没值]。得到的结果为图(e)一系列的离散点。
从频域来看:
对图(b)频谱采样,就是将图(b)进行按照图(d)复制粘贴得到图(f)这样的频谱。

走样现象产生原因:采样不同的间隔会造成频谱以另外不同的间隔移动。如果采样率不足或采样的不够快(步长短),会造成原始的信号复制粘贴的间隔会很小。如此原始的信号会与复制粘贴的信号重叠,这种现象就是走样。
采样越稀疏,对应频谱的间隔会越密集。
GAMES101-Lecture 06_第20张图片

Antialiasing in practice

增加采样率:受制于物理限制
先进行模糊再采样:模糊(低通滤波)先将高频信号去除再采样。
GAMES101-Lecture 06_第21张图片
实际操作:如何把图片变模糊——使用一定大小的低通滤波器对图片某一块进行卷积。
块的选取:可以取一个像素。求每一个像素覆盖面的平均。
GAMES101-Lecture 06_第22张图片
卷积后的结果:
GAMES101-Lecture 06_第23张图片

MSAA

用更多的采样点来进行反走样。对应任何一个像素,将其划分为好多个小像素,每个小像素有一个中心,判断小像素的点是否在三角形中心。
GAMES101-Lecture 06_第24张图片
再将判断的结果平均起来,就相当于大像素覆盖面积的近似。
不进行MSAA:
GAMES101-Lecture 06_第25张图片
进行MSAA:
GAMES101-Lecture 06_第26张图片
GAMES101-Lecture 06_第27张图片
GAMES101-Lecture 06_第28张图片
GAMES101-Lecture 06_第29张图片
GAMES101-Lecture 06_第30张图片
以上是MSAA的模糊操作,模糊后再进行采样,就如实按照模糊后的像素点进行采样。
MSAA的缺点:增大了计算量。

Antialiasing Today

MSAA
FXAA(Fast Approximate AA快速近似抗锯齿):先得到有锯齿的图,再进行后期操作找到图像边界,将边界换成没有锯齿的边界。
TAA(Temporal AA):找上一帧的信息。假如找一个像素来感知是否在三角形内,相邻两帧一个像素不同位置上的点来感知是否在三角形内,在时间范围中有的帧在边界内有的不在,于是复用上一帧的感知到的结果。

你可能感兴趣的:(计算机图形学)