1463 字
7 分钟
GAMES101 Lecture 06 Rasterization 2 (Antialiasing and Z-Buffering)

把到达光学元件上的光,产生的信息,离散成了像素,对这些像素采样,形成了照片

采样不只发生在位置上还能发生在时间上,对图像在时间上进行采样,形成了视频

采样产生的问题

  • 走样
  • 摩尔纹
  • 车轮效应

原因就是信号的变化太快了,以至于采样的速度跟不上

反走样处理方法:采样前模糊#

不能先采样再模糊!只能先模糊在采样

频域与时域#

时域(Time Domain)就像是在看一段视频,它记录了信号随时间流逝而产生的起伏变化,例如医生看的心电图就是典型的时域表现。

频域(Frequency Domain)则像是看一份配料表,它揭示了一个信号是由哪些不同频率的“原材料”组成的,比如音乐播放器上随节奏跳动的频谱条。

通过傅里叶变换,我们可以把在时域中看似杂乱无章的信号,转换成在频域中清晰可见的频率成分。

傅立叶级数展开#

任何一个周期性的函数都可以变成一系列正弦/余弦的线性组合和一个常数项

傅立叶变换#

可以把一个函数f(x)通过变化变成F(w),F(w)还能通过逆变换变成f(x)

对五个不同频率的函数波形进行采样

通过f1(x)、f2(x)的采样点,我们可以大致还原出f1(x)\f2(x)的函数波形

但是从f3(x)开始,还原出的波形和原来的函数有较大出入,越往下越明显

这里就可以理解什么叫采样的频率跟不上信号变化的频率了

我们对蓝色函数进行采样,得到黑色的函数

但假如原本就有这样一个黑色的函数

我们同时对蓝色和黑色进行采样,两个截然不同的函数,得到的采样结果完全相同

这就被称为走样(Aliases)

滤波#

滤波就是抹掉一些特定的频率

对应的信号如何发生变化

傅里叶变换可以把一个函数从时域变到频域

右边的图像就是左边的照片通过傅里叶变换得到的

右边图像表示的就是有多少信息

中间部分是低频信息,越往外越高频

高通滤波#

在频域空间内完全抹掉低频信号,将结果还原成图像,形成左图

高频的东西在图像上表示的就是图像的边界

为什么高频信息代表着边界?

当某一图像的周围突然发生发生了变化,我们就认为他是边界

比如图中人物的衣服和背景就是由黑色突然变成了灰色

相当于颜色信号突然从黑色变成了灰色,就是出现了高频的变化,即边界

低通滤波#

同理高通滤波,得到模糊的图像

去除高频和低频,只留一部分

卷积#

移动窗口(Filter),将窗口中三个数和覆盖信号的三个数做点乘,填到结果中

其实就是信号在任意一个地方,在他的周围做了个平均操作

卷积的一些定理#

时域的卷积 == 频域的乘积

  • 可以拿到一幅图直接用一个卷积滤波器进行卷积操作
  • 也可以
    1. 先傅里叶变换这幅图,将这幅图变到频域

    2. 将卷积滤波器变到频域上

    3. 将两者相乘,乘完后得到的频域的结果,将其逆傅里叶变换,变到时域上

3*3的滤波器乘1/9是为了不让图像整体的颜色发生变化

如果不乘1/9,那么每个像素就会是原来这个像素周围九个像素的和,图像就会越滤波越明亮了

时域中的卷积盒的变化会对频域的图像产生什么样的影响?

盒子在时域上变大了,就会导致在频域上的图像越小,因为平均的范围变大了,也就变得更模糊了,反之.

什么是采样,什么是走样

采样就是重复频域上的内容.

左边一列是时域,右边一列是频域

对a图像进行c的采样,得到e

对应的操作在频域中就是bdf

时域的采样在频域中就就体现为频域信号的复制

为什么会产生走样呢?

采样不同的间隔,会引起频谱不同间隔进行复制,所相交的部分就是走样

反走样#

先对图像做模糊(把高频信息拿掉),再采样

把高频信息砍掉,砍掉虚线方块以外,在以原始采样频率进行采样

这样频域图像就不会发生混叠,也就没有走样了

对覆盖面积求平均,也就是卷积

MSAA多重采样抗锯齿#

通过更多的样本来近似三角形的覆盖率,并不是提高采样频率

把一个像素划分为几个小点,判断这些小点是否在三角形内,再把结果平均起来,就知道三角形覆盖了这个像素的百分之多少

并不是简单的提高了采样的频率,只是用来做第一步模糊,求三角形的覆盖率,平均之后是什么

MSAA解决的其实是对信号的模糊操作

在工业界并不是直接将每个像素平均分了四份,而是采用了一些独特的图形,而且一些边缘的像素还会被复用

GAMES101 Lecture 06 Rasterization 2 (Antialiasing and Z-Buffering)
https://dingfengbo.vercel.app/posts/games101/lecture-06-rasterization-2-antialiasing-and-z-buffering/
作者
Eureka
发布于
2026-03-26
许可协议
CC BY-NC-SA 4.0