跳至正文

Rasterization 2(Antialiasing and Z-buffering)

接着上节课课末的锯齿问题

抗锯齿或者反走样

锯齿的学名就叫Aliasing

 
 

采样理论

照片 视频或者说动画 都发生了采样

采样是广泛存在的 所以采样的问题同样广泛存在

Artifacts就是形容图形学中像这样的这些问题

 
 

摩尔纹:

拿手机拍一个显示器的屏幕也会产生

同样是采样带来的问题

 
 

车轮错觉效应:时间上采样带来的问题

 
 

在这些现象背后的原因:信号变化的速度太快了 采样跟不上它

 
 

先给结果,再讨论为什么

结果:在采样之前 先对信号做一个模糊

问:为什么不反过来 采样完对采样做模糊呢?

 
 

频率 频域

周期是频率的倒数

傅里叶级数展开:可以把一个函数描述成不同正弦余弦项的和

傅里叶变换:给定任何一个函数 都可以经过一个复杂的操作变成另一个

还可以逆变换回来 也就是逆傅里叶变换

通过频率的分析 我们可以体会到采样应该也要有对应的频率

 
 

同样的采样方法采样两个不同的函数得出来的结果有可能相同

无法区分的情况就叫做走样

 
 

 
 

 
 

滤波是什么?

去掉一系列的频率

傅里叶变换就能把图像转化为频率信息

低频信息集中在中间 高频集中在外部

右边就是频域图 十字可以忽略

高通滤波:去掉低频

低通滤波:去掉高频

去除不同程度的高频和低频

 
 

 
 

 
 

滤波 = 卷积(图形学上简化了 实际上应该是约等关系)

 
 

时域的乘积是频域的卷积

卷积核/滤波器

为什么时域内图像变大了 频域却变小了

越大的卷积核结果越模糊 也就是越小

 
 

 
 

什么是采样呢:重复频率或者频域上的内容

 
 

走样

怎样减少走样的发生?

  • 增加采样率
  • 反走样

砍掉高频 让低采样率发生的重叠不再重叠

对函数做卷积操作

对于每个像素 把三角形求个平均值 再做采样

 
 

实际上应该的操作:MSAA

用更多的采样点来进行反走样

把一个像素划分成很多小的像素

 
 

多加一些采样点

平均一下

 
 

 
 

 
 

不是提高了采样率完成的 只是为了得到一个近似的三角形的覆盖而已

 
 

我们到底牺牲了什么呢?

MSAA需要消耗更多的性能

但样本的复用又会减少消耗

FXAA:快速近似抗锯齿,把锯齿的边界换成没有锯齿的边界

和采样并没有关系,是在图像层面上的操作

TAA :时间相关,找上一帧的信息,在这一帧继续发挥作用

相当于是把MSAA的样本按时间来分布

超分辨率:把小图拉大 但又不想要锯齿

和抗锯齿有异曲同工之妙

DLSS:通过深度学习来实现超分辨率

 
 

发表评论

您的电子邮箱地址不会被公开。