06光栅化(深度测试与抗锯齿)
1.采样产生的问题
Artifacts due to sampling - “Aliasing”
• Jaggies – sampling in space
• Moire – undersampling images
• Wagon wheel effect – sampling in time 车轮效应
• [Many more] …
产生问题的原因:Signals are changing too fast (high frequency),but sampled too slowly 信号变化太快但采样太慢。
2.解决方案
1.Blurring (Pre-Filtering) Before Sampling 采样前做模糊操作
反走样:先对信号做模糊操作,再进行采样。
问题:为什么不可以先采样再模糊?
因为先采样就是把信号的频谱进行搬移,会有频谱的混别,然后的采样相当于是在混叠了之后再把这个信号给截断,这个时候混叠的信号仍然还是混叠的信号。
2.Frequency Domain 频域
通过调整x之前的系数,会得到各种不同的余弦波。它们的不同在于它们的频域不同,通过改变f的值可以定义频率变化的快慢。周期是频率的导数。
3.Fourier傅里叶基数展开
定义:任何一个周期函数,都可以写成一系列正弦/余弦函数的线性组合以及一个常数项。
例如当我们需要描绘一个类似城墙的函数时,我们可以通过多组函数的线性组会来近似。
傅里叶变换:把一个函数经过一系列复杂变换后变为另一个函数。也就是把函数变成不同频率的段,然后把这不同频率的段给显示出来。
当采样频率跟不上信号变换频率时,采样结果就无法比拟信号,例如下图中的最后一个。
1.高频信号采样不足:采样错误地显示为来自低频信号High-frequency signal is insufficiently sampled: samples erroneously appear to be from a low-frequency signal
2.在给定采样率下无法区分的两个频率称为“走样” Two frequencies that are indistinguishable at a given sampling rate are called “aliases”
4.滤波Filtering=消除某些频率内容 Getting rid of certain frequency contents
通过傅里叶变换把图片从时域变到频域:从图像空间变化为频率的空间
虽然左边图片不代表任何空间信息,但我们认为空间上不同的位置也算做时域
右边的图如何理解:中心定义为最低频的区域,从中心到周围其频率会越来越高。在不同频率的位置上,它到底有多少信息在不同的频率上,我们通过亮度来表示。
右图的两条线:我们在分析信号的时候会认为它是一个周期性重复的信号,那对于不周期性重复的信号怎么办?比如左图并没有重复,那我们就认为它其实是比如说它到了右边界之后,它又重复左边的内容,然后继续往右,就好像这张图在水平方向被折叠了好多个,竖直方向也挨个放了好多个,也就是有无限多个这种这样的图。那么我们会发现,在正常的情况下,很少有图像的右边界和左边界是完全一致的,如果我把这个图从左搬到右边,那么它图像左边界和右边界要放在一块,然后在这条边界上会发生剧烈的信号变化,也就会产生一个极其高的高频。这就是为什么会看到两条线的原因。
频谱:傅里叶变换能够让我们看到图像在各个不同的频率长什么样,也就是说可以看到任何信号在不同的频率都长什么样。
高通滤波(高频通过,也就是只剩下高频信号):当我们把低频的信号都去掉时,再变换回去,发现是图像的边界(图像信号变化大的地方)。
低通滤波:只留下低频信息,得到的是一张相对模糊的图
把高频和低频去掉,留下一段既不是高频也不是低频的信息。就会提取到一些不是那么明显的边界特征。
5.Filtering = Convolution(= Averaging) 滤波=平均=卷积
时域上,如果我想对两个信号进行卷积,那么它其实对应到这两个信号各自的频域上是两个信号频域的乘积。时域上的乘积=频域上的卷积。
卷积盒越大频率越小卷积后的图片越模糊
6.采样Sampling = Repeating Frequency Contents重复原始信号的频谱
走样:频谱在经过复制粘贴或搬移的情况下发生混合/混叠
3.反走样/抗锯齿:先把高频信号拿掉再采样
1.通过超级采样消除混叠:MSAA
将一个像素变为好多个像素点(例如图中一个点划分为四个点),用来近似一个合理的覆盖率
虽然得到了抗锯齿的效果但增大了计算量。
2.FXAA(Fast Approximate AA)快速近似抗锯齿:与采样无关,是在图像中做的操作
先得到一个有锯齿的图,再通过一些操作消去锯齿。把原来有锯齿图像的边界找到换成没有锯齿的边界。
3.TAA(Temporal AA)
相邻两帧可以用一个像素内部不同位置上的点来感知这个三角形是否在三角形内,也就是复用上一帧感知到的结果,上一帧每个像素的值在这周还会继续发挥作用。相当于把MSAA对应的这些样本分布在了时间上,然后对于当前这一帧没有引入任何额外的操作。
4.总结
Super resolution / super sampling 超级分辨率
比如一张512 * 512的图拉大为1024 * 1024的,却又不想看到锯齿,相当于有一张高分辨率的图,采样结果不够是512 * 512,如何恢复?也就是解决样本不足的问题。
使用DLSS(Deep Learning Super Sampling)的方法
使用深度学习的方法把细节缺失的地方给猜出来