接着上节课课末的锯齿问题
抗锯齿或者反走样
锯齿的学名就叫Aliasing
采样理论
照片 视频或者说动画 都发生了采样
采样是广泛存在的 所以采样的问题同样广泛存在
Artifacts就是形容图形学中像这样的这些问题
摩尔纹:
拿手机拍一个显示器的屏幕也会产生
同样是采样带来的问题
车轮错觉效应:时间上采样带来的问题
在这些现象背后的原因:信号变化的速度太快了 采样跟不上它
先给结果,再讨论为什么
结果:在采样之前 先对信号做一个模糊
问:为什么不反过来 采样完对采样做模糊呢?
频率 频域
周期是频率的倒数
傅里叶级数展开:可以把一个函数描述成不同正弦余弦项的和
傅里叶变换:给定任何一个函数 都可以经过一个复杂的操作变成另一个
还可以逆变换回来 也就是逆傅里叶变换
通过频率的分析 我们可以体会到采样应该也要有对应的频率
同样的采样方法采样两个不同的函数得出来的结果有可能相同
无法区分的情况就叫做走样
滤波是什么?
去掉一系列的频率
傅里叶变换就能把图像转化为频率信息
低频信息集中在中间 高频集中在外部
右边就是频域图 十字可以忽略
高通滤波:去掉低频
低通滤波:去掉高频
去除不同程度的高频和低频
滤波 = 卷积(图形学上简化了 实际上应该是约等关系)
时域的乘积是频域的卷积
卷积核/滤波器
为什么时域内图像变大了 频域却变小了
越大的卷积核结果越模糊 也就是越小
什么是采样呢:重复频率或者频域上的内容
走样
怎样减少走样的发生?
- 增加采样率
- 反走样
砍掉高频 让低采样率发生的重叠不再重叠
对函数做卷积操作
对于每个像素 把三角形求个平均值 再做采样
实际上应该的操作:MSAA
用更多的采样点来进行反走样
把一个像素划分成很多小的像素
多加一些采样点
平均一下
不是提高了采样率完成的 只是为了得到一个近似的三角形的覆盖而已
我们到底牺牲了什么呢?
MSAA需要消耗更多的性能
但样本的复用又会减少消耗
FXAA:快速近似抗锯齿,把锯齿的边界换成没有锯齿的边界
和采样并没有关系,是在图像层面上的操作
TAA :时间相关,找上一帧的信息,在这一帧继续发挥作用
相当于是把MSAA的样本按时间来分布
超分辨率:把小图拉大 但又不想要锯齿
和抗锯齿有异曲同工之妙
DLSS:通过深度学习来实现超分辨率