Game101课程笔记_lecture06_光栅化2
1 Antialiasing 反走样
Aliasing 是走样的学术名
1 采样理论
采样可以发生在不同的位置,也可以发生在不同的时间。
1 Artifacts:错误,瑕疵。(in Graphics)
摩尔轮。拿手机拍显示屏的屏幕也会发生。
人眼在时间中的采样跟不上运动
本质是信号的变换太快,采样的速度跟不上!,需要通过频率来分析artifacs。
2 antialiasing idea
反走样的思想:在采样前先做模糊处理。
如果先采样再模糊处理,效果不好,这个 名字叫做Blurred Aliasing
先采样再过滤,这样是不可以的!为啥呢?需要频域方面的知识!
3 频域
1 频率f定义
通过,频率不同,f就是频率,f=1,频域就是1.
用f,定义余弦波变化的快慢。f越大变化越快。
周期T是频率的倒数。
2 傅里叶变换
任何一个函数都可以写出一系列正弦和余弦函数的线性组合以及一个常数项。
下图我们要描述的是像城墙的函数,用一个cos和sin的线性组合来表示这个函数。引入更多的线性组合,就会无限接近。
所以我们知道任何一个函数都可以分解成不同的频率。
傅里叶级数展开和傅里叶变换是紧密相连的,但是不是一回事。
可以看到一个函数可以变成另外一个函数,也可以把这个函数逆变换变回原来的函数。这个操作就是傅里叶变换和傅里叶逆变换。
傅里叶变换:把一个函数变成不同的频率的段,并且显示出来。
可以看到,采样相同的点,在不同的频率上采样恢复的情况不同。
一个函数本身有一定的频率,采样也有一定的频域。如果间隔很小,采样非常密,采样频率很高,就可以采用很多频率的采样点,恢复出很高频率的函数来。如果函数本身频率很高,但是采样的频率很低,那就跟不上这个变换。
所以采样和频率是非常关键的。
3 通过频率分析走样
分析:
蓝色的正弦函数通过采样点,恢复出来后是黑色的线,很明显效果很不好。
做个假设:有两个函数,分别是下图中的黑色和蓝色的线,
通过同样的的采样方法,采样的结果却是完全相同的。这两个函数在频率上差很多。
同样的采样方法,采样不同频率上的函数,我们无法区分它。这就是走样。
4 函数拥有的频率
- 滤波
去掉某个特定的频率
- 例子
中间是最低频的区域,周围定义成高频的,
中心到周围,低频到高频。上面的图像都是低频信息。高频非常少。
自然图片都是低频信息。
傅里叶变换可以让我们看到图像在各个频率长什么样子。也就是频谱。
高频通过,低频滤掉。高频滤波器。
边界—变换很大。发生剧烈的变化,也就是高频信息。
低频通过,高频去掉
模糊了。
留下一部分频段。去掉高频和低频。
这块知识是《数字图像处理》,这是经典操作,现在更多的图像处理是深度学习的方法。
4. 卷积
过滤也是卷积。
- 定义
滤波器窗口的三个数和窗口所覆盖的三个数进行一个点乘,得出来的结果写回窗口的中间值。
滤波器和信号进行点乘,得到一个结果写到中间!
其实就是一个平均!原始信号中任意一个位置都取它周围很多数的加权平均数;
信号在任何一个地方在它周围进行了一个平均;
卷积:先变到频域上,进行卷积,然后再逆傅里叶。
卷积在时域上是点积,变换到频域上就是卷积。
时域的点击积等于频域的乘积
每个像素取它周围,进行卷积
先变到频域上,再进行卷积,其实就是低频滤波
时-的卷积就是频域的。
这个就是卷积盒也是滤波器。这个也是低通滤波器。
5 采样
采样就是重复频率内容
冲激函数:只在这个位置上有值,其他位置上没有值。
原始函数a乘以一个冲激函数,就可以得到采样结果。
所以采样就是在频域上将原始信号不断重复。
时域和频域上有很大相反的关系:采样的越稀疏,对于频谱搬移越密集。搬一点太密集了就会有问题。
所谓走样就是在搬移的时候频谱发生了混合。
2 Antialiasing in practice
使用的方法是先将高频信号去掉。这样就可以了。
也就是先做个模糊,再做采样
频域上就是低通滤波,把一个信号高频信号拿掉,再采样,解决方法如下:
反走样的方法:
也就是计算三角形的边覆盖了一个像素的比例,来决定这个像素的亮度和呈现的颜色。
3 MSAA
把一个三角形在某个像素里覆盖的区域算出来。这个不容易,计算量很大。
multi sample antialiasing
这个方法是反走样的近似,并不能严格意义上解决反走样的问题。
把某一个像素划分成很多个小的像素。没一个小的像素是否在三角形内,然后把判断结果平均起来,就是三角形对像素覆盖的一个近似。
通过更多的样本,就是第一步是模糊,模糊完了后再采样。
MSAA解决的是对信号的模糊!不是靠提升分辨率来解决的。只是通过增加点来计算覆盖率
FXAA–得到一个有锯齿的图,然后再把有锯齿的边换成没有锯齿的边,很快,工业界用。属于图像上的方法
TAA–相邻两帧,复用上一帧的信息,相当于将MSAA的样本分布到了时间上。
超分辨率:原本一张小图拉长到一张大图,
深度学习就是猜。通过深度学习的方法来做超分辨率。