当前位置: 代码迷 >> 综合 >> Games101 笔记 06光栅化(深度测试与抗锯齿)
  详细解决方案

Games101 笔记 06光栅化(深度测试与抗锯齿)

热度:2   发布时间:2024-02-28 01:30:25.0

反走样

上次课的最后的是三角形有明显的锯齿, 学名是走样 (Aliasing)

视频 就是在时间中的采样

Artifacts(Errors/Mistakes/Inaccuracies)in Computer Graphics 图形中的一切错误,不准确都可以用这个

比如: 高速行走的轮胎会让你感觉又向后的趋势, 原因是人眼是时间上的采样跟不上采样的速度.

Sampling Artifacts 采样错误

  • Jaggies - 锯齿
  • Moire - 摩尔纹, 把奇数行,列的纹理都去掉
  • 车轮的效果 - 时间中的采样
  • More

 

信号的变化太快, 跟不上他的变化速度, 

Antialiased Sampling 反走样

先模糊,再采样

 

左侧先采样再模糊, 右侧先模糊再采样,

所以只能先模糊再采样,不能反向

 

Frequency Domain 频域

上下2个频率不同

cos 2πfx  这个f 就是频率     上面是1, 下面是2

f = 1/T

周期 = 1/频率,  上面周期是1, 下面的周期是0.5   也表示多久重复自己一次

傅里叶级数展开

任何一个周期函数, 都可以写成正弦和余弦函数的组合以及一个常数项

傅里叶级数展开 和傅里叶变换紧密相连

给定任何一个函数, 都可以经过复杂的变换另外一个函数.  还可以逆变换, 变回来.

5个函数有不同的频率, 在相同的间隔点采样.  

对于高频函数, 高频信息丢失, 蓝色线和绿色线差别越来越大.

走样: 用同样的采样方法对2种频率完全不同的函数采样 得到的采样结果可能是完全一样的. 

Filtering = Getting rid of  certain frequency contents 
滤波 去除某些频率内容
傅里叶变换可以把一个函数从时域变到频域
右侧是图片的傅里叶变换,


把低频过滤掉, 左侧保留的都是高频内容,  这种叫高通滤波(只剩下高频), 内容上的边界, 信号变化非常大的地方.

只留下低频信息,  低通滤波器   把边界去掉啦, 比较模糊

把高频, 低频信号都过滤掉

Filtering = Convolution  (= Averaging)

滤波 = 卷积 = 平均

卷积   (可以近似的看作加权平均值)

卷积操作是在这个窗口上一直移动

卷积定理

2个信号时域上的卷积 = 2个信号频域上的乘积, 可逆过来.


box 卷积, 左侧时域, 右侧频率, 低通过滤器 模糊

卷积核变大, 变得更加模糊, 极端情况下 放一个比原图还大的卷积核, 那么得到的基本是一样的东西, 更加模糊.

Sampling = Repeating Frequency Contents
采样 = 重复频域上的内容

 

c 冲激函数  e(采样结果) = a(连续函数)*c(冲激函数) 

f 相当于重复b,

 采样的频率不足,  采样的内容和原始的有重叠内容,  发生了走样. 

反走样

1.提高采样率

比如说屏幕的分辨率提高.

2.先模糊再采样

先把原始信号进行模糊, 再进行采样.

对于覆盖的面积进行下取样.

实际中的处理 MASS(MultiSampling Anti-Aliasing 多重采样抗锯齿)

一个像素分成小的像素. 

2x2得采样率

mass 解决得是模糊, 下一步才是采样. 不是依靠提升分辨率.

Mass 得消耗

增大了计算量. 

工业级并不是按照2x2, 4x4 这种, 可能是不规则

其他比较重要得工业界使用得:

FXAA (Fast Approximate AA)    快速近似抗锯齿,

   根据图像处理来处理锯齿, 根据图像匹配把边界找到, 然后换成没有锯齿得, 速度也很快.

TAA (Temporal AA)  

   根据上一帧得结果,  相当于把Mass得采样分布在时间上.

Super resolution / super sampling   超分辨率

小图拉大, 不想看到锯齿,  目前通过深度学习去猜测.