计算机图形学GAMES101(五)光栅化(深度测试与抗锯齿)
本文最后更新于 2024年5月26日 下午
本节内容
反走样
采样理论 图形学中怎么实现反走样
遮挡与可见性
采样造成走样的本质:
信号的变化太快了,以至于采样的速度跟不上变化的速度。
反走样的方法
1、在采样前做模糊操作,然后再去采样。
结果反走样之后的效果:
对于先采样后模糊的操作(顺序与反走样相反)我们称之为Blurred Aliasing,即把走样后的图像进行了模糊操作。这样处理的图片并不清楚。
理解频率
傅里叶级数展开:任何一个周期函数都可以写成一系列正弦和余弦函数的线性组合以及一个常数项
从f(x)=A/2(最低的频率)开始,每次不断地向式子中加入一些正余弦函数,然后画出新的图像,会发现当加入的项越多时,整个f(x)函数的图像越接近于原始的那个像城墙一样的原函数。
说明任何一个函数都可以使用傅里叶变换(图像也不例外)
走样的概念
High-frequency signal is insufficiently sampled: samples erroneously appear to be from a low-frequency signal
高频信号采样不足:采样错误地显示为低频信号
Two frequencies that are indistinguishable at a given sampling rate are called “aliases”
在给定的采样率下不能区分的两个频率称为“走样”。
滤波
是将信号中特定波段频率滤除的操作,是抑制和防止干扰的一项重要措施。
右边是左图经过傅里叶变换后的频域,越靠近中心代表频率越低,越靠近外侧代表频率越高,白线是因为图像边界引起的。(这里的频率是指 图像颜色变化的激烈程度)
中间很亮代表该图像有很多一大块一大块的色块,各个像素点之间的颜色变化并不明显,只有人物边缘部分的像素变化明显一点。
高通滤波(抹除低频信号,高频信号可以通过)
可以看到摸出低频信号后图像只保留了轮廓信息(高频信息)。这种滤波叫做高通滤波
低通滤波:(抹除高频信号,低频信号可以通过)
低通滤波 去掉了高频信息,即细节信息,留下的低频信息代表了概貌。常用的例子,比如美图秀秀的磨皮,去掉了脸部细节信息(痘坑,痘印,暗斑等)。高通滤波则相反。
滤波又可以理解为平均或者卷积
当我们在求经过滤波后的某个数时,会去参考其周围的几个数。这里是对周围一个数按权求和,得到一个新的数,这个数就是滤波处理后的结果,这种操作叫做卷积。
卷积定理
时域上卷积=在频域上乘积
通过这个定理就知道了怎么样去做一个卷积
方式一:
可以直接用图片然后进行卷积操作
方式二:
首先将图片进行傅里叶变换变到频域上,然后将卷积的滤波器变到频域上,把这两者相乘得到频域上的结果,然后做逆傅里叶变换变为时域上。
用一个3×3的卷积盒,任何一个像素都是它周围对应的8个格子像素的平均。
通过观察图像知道,这个卷积操作相当于进行了一次低通滤波。
卷积盒越大则对应的频域越小。
从频率的角度理解采样
可以发现,频域上原始信号被copy了很多个。所以采样实质就是重复原始信号它的频谱。
从频率的角度理解走样
理解了采样的实质后就可以理解走样了。
如果采样率不足(采样不够快),那么信号“复制粘贴”中间的间隔就会非常小(采样间隔时间大,换算成频率的话就是频率间隔小)而走样就是频谱发生了重叠。
反走样
方法:先把一个信号高频信息去掉(做低通滤波,即模糊操作),然后再采样。
利用频谱证明:
怎么实现把图像变模糊
我们只需要对于每一个像素都进行卷积操作就行了。
通过计算平均像素值来抗锯齿
在对一个三角形进行光栅化时,f(x,y) = inside(triangle,x,y)像素区域内的平均值等于该三角形所覆盖的像素区域的面积。
假设最左边的黑色覆盖了1/8,即有7/8没覆盖,也就是有87.5%的白色,最右边的黑色全部覆盖,也就是有0%的白色(纯黑色)
实际中的反走样方法
如果要实现上一节中计算像素被覆盖的面积是多少在现实中是非常困难的。所以采用了下面的方法。
MSAA:MSAA是MultiSampling Anti-Aliasing的英文缩写,指多重采样抗锯齿,原理是寻找出物体边缘部分的像素,然后再把画缩放到当前的显示器上。
MSAA原理:
通过对一个像素内的多个位置进行采样并取其平均值来确定一个像素被覆盖了多少,即增加一个像素内采样点的数量来确定被覆盖的范围。
没采用MSAA:
采用了MSAA:
最终结果:
其他抗锯齿的方法:
FXAA(Fast Approximate AA)
首先得到一幅图(有锯齿),然后找到有锯齿边界,然后把边界换成没有锯齿的边界。
TAA(Temporal AA)
复用上一帧的结果,上一帧的值在这一帧也会发挥作用
Super resolution / super sampling (超采样技术)
• From low resolution to high resolution (从低分辨率到高分辨率 )
• Essentially still “not enough samples” problem (本质上仍然是“样本不足”的问题 )
• DLSS (Deep Learning Super Sampling)(深度学习超级采样)
超采样技术:有一种512p的图,现在需要把它用1080p来显示,如果直接放大就会导致很严重的锯齿现象,那么就需要去填充放大之后缺乏的像素点,可以使用深度学习的方法让电脑来去猜这个像素应该填什么颜色,这就是DLSS。