图形学笔记(六)光栅化2 —— Artifacts、时域与频域、滤波、卷积定理、超采样、MSAA、深度缓存

图形学笔记(五)光栅化——屏幕、像素、屏幕空间、视口变换、基础图元与三角形、采样、包围盒、锯齿或走样
图形学笔记(七)着色 —— Blinn-Phone 反射模型、着色频率、渲染管线、GPU

1 Artifacts 瑕疵

在计算机图形学中Artifacts(瑕疵)指的是Errors / Mistakes / Inaccuracies

1.1 采样产生的Artifacts

1> 锯齿Jaggies——由空间采样造成
在这里插入图片描述

2> 摩尔纹Moire Pattterns(去掉图像的奇数行和奇数列)—— 由欠采样undersampling造成

可以看到下图中,右侧图片纹理显示不清晰。
在这里插入图片描述

3> Wagon wheel effect车轮效应 —— 由时间上的采样造成

如下图所示,顺时针旋转的车轮有的环看起来像逆时针。
在这里插入图片描述

1.2 产生Artifact的原因

很多Artifact产生的原因是信号变换太快而采样太慢。

1.3 一种反走样的方法 —— 在采样之前做模糊(滤波)

对原始的信号做模糊(滤波)再进行采样即可进行反走样。(注意:顺序不能变,先采样再模糊无法反走样)
在这里插入图片描述

2 频率方面的基础知识

2.1 频域 Frequency Domain

频域是描述信号在频率方面特性时用到的一种坐标系。 在电子学,控制系统工程和统计学中,频域图显示了在一个频率范围内每个给定频带内的信号量

2.2 频率和周期

频率是f,周期是T。
频率越快,函数变化越快,如下图所示。
在这里插入图片描述

3 傅里叶变换

1> 傅里叶级数展开
一切函数都可以写成一系列正弦函数和余弦函数的线性组合与一个常数项

2> 傅里叶变换
下面展示了傅里叶变换和逆傅里叶变换。
在这里插入图片描述

4 从频率上来分析走样

对下图的 f 1 ( x ) f_1(x) f1(x) f 5 ( x ) f_5(x) f5(x)进行相同时间段的采样,然后把采样点相连来恢复原图像,我们发现频率越快恢复效果越差。

在这里插入图片描述

从频率分析角度定义走样:同样的采样方法采样两种频率的函数,但是得出的结果无法区分。

5 滤波

(频率角度上)滤波就是去掉一系列的频率。

5.1 傅里叶变化的作用

傅里叶变换可以把图像从时域变到频域。

对下左图进行傅里叶变换,得到下右图。
下右图中,中心是低频区域,周围是高频区域。
亮度代表信息密度,区域越亮表示信息越集中,下图表示图片的大多数信息都处于低频。
右下图右成为频谱。

Tips:自然中的图片一般都低频信息比较集中,高频不集中。

5.2 高通滤波(High-pass filter)

5.2.1 定义

消除低频的信号,只让高频信号可以通过,然后进行逆傅里叶变换。

在这里插入图片描述

5.2.2 为什么高频信息对应图像上的边界

边界的特点:图像中发生突变的位置(颜色差的很多)。对应信号变换特别大。

5.3 低通滤波/模糊(Low-pass filter/Blur)

消除高频的信号,只让低频信号可以通过,然后进行逆傅里叶变换。

在这里插入图片描述

5.4 带通滤波(Band-pass filter)

去掉高频和低频的信息。
在这里插入图片描述

6 卷积 Convolution

滤波 Filtering = 卷积 Convolution (= 平均 Averaging)

6.1 定义

卷积是两个变量在某范围内相乘后求和的结果。

简单理解:有一个滑动窗口(滤波器),窗口的每个格子有权重,将这个窗口在信号上从左向右滑动做点乘。如下图所示。
在这里插入图片描述

6.2 卷积定理 Convolution Theorem

卷积定理指出,函数卷积的傅立叶变换是函数傅立叶变换的乘积。

具体分为时域卷积定理频域卷积定理,两者具有对偶关系。

  • 时域卷积定理:时域内的卷积对应频域内的乘积;
  • 频域卷积定理:频域内的卷积对应时域内的乘积。

6.3 卷积定理的应用

如下所示上面一行是时域的卷积(*是卷积操作)下面一行是频域的乘积。

在这里插入图片描述

6.4 卷积中的低通滤波器

下面盒子形状的滤波器(Box Filter)就是低通滤波器。
在这里插入图片描述
乘上1/9是为了卷积后的图片颜色与原来基本一致,否则图片就太亮了(归一化)。

6.5 卷积核大小与频率的关系

卷积核越大,频率越小。

在这里插入图片描述
在这里插入图片描述

7 从频率的角度看采样

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

7.1 冲激函数

定义:
在这里插入图片描述
冲激函数图像:
在这里插入图片描述

7.2 获得采样(与冲激函数相乘)

对于原始信号a,让它与冲激函数相乘,就可以得到采样的结果。

在这里插入图片描述

采样就是重复原始信号的频谱。

7.3 走样 = 频谱在搬移后出现了混合 Aliasing=Mixed Frequency Contents

在这里插入图片描述

8 减少走样的方法

8.1 增加采样率

  • 本质上是增加了频域上复制的距离。
  • 可以使用高分辨率的显示器、传感器、帧缓冲器。

8.2 进行反走样

反走样简单来说就是:在对频谱重复之前,先让频谱更窄。

即先去掉一个信号的高频信息,然后再采样,如下图所示。
在这里插入图片描述

9 通过在像素区域平均来反走样

  1. 对每一个像素进行卷积操作
  2. 然后对每个像素中心进行采样

如图,像素区域的亮度等于覆盖的图案覆盖这个像素的面积(即把像素内部的值平均起来)。
在这里插入图片描述

10 多重采样 Antialiasing By Supersampling(MSAA)

我们通过在一个像素内划分出更多的中心点来用更多的采用点进行反走样,但注意这只是反走样的近似,并不能真正解决反走样问题

10.1 超采样 Supersampling

在这里插入图片描述

例如对以下进行超采样。
在这里插入图片描述

第一步:对每个像素划分 N × N N\times N N×N的采样点。(如图是 2 × 2 的 超 采 样 2\times2的超采样 2×2
在这里插入图片描述

第二步:在每个像素里对这个 N × N N\times N N×N的采样点做平均。

在这里插入图片描述

超采样的结果:
在这里插入图片描述

10.2 其他抗锯齿的方法

  • FXAA(Fast Approxiamate AA):先获得有锯齿的图,然后找到边界,然后将有锯齿的边界替换成没有锯齿的边界。
  • TAA(Temporal AA):复用上一帧感知到的结果,相当于把MSAA的样本分布到时间上,然后不对当前这一帧引入额外的操作。

11 超分辨率问题 Super resolution / super sampling

  • 超分辨率就是从低分辨率到高分辨率(比如把 256 × 256 256 \times 256 256×256的图片拉大到 1024 × 1024 1024\times 1024 1024×1024
  • 本质上仍是采样不足的问题
  • 可以采用DLSS(Deep Learning Super Sampling)的方法

12 可见性 / 遮挡 Visiblity / occlusion

12.1 画家算法 Painter’s Algorithm

内容:首先绘制距离较远的场景,然后用绘制距离较近的场景覆盖较远的部分。

存在的问题:首先画家算法需要按照深度排序需要将物体按照深度进行排序,但是对于以下三个三角形,无法确定深度的顺序,所以实际上我们无法使用画家算法。
在这里插入图片描述

12.2 深度缓存 Z-Buffer

12.2.1 概念

Store current min. z-value for each sample(pixel)

1> 存储每个像素当前最小的z值
2> 需要一个额外的缓存来存储深度值

  • frame buffer 存储颜色值
  • depth buffer(z-buffer)存储深度值(为了简化,我们假设所有z都是正数,z越小越近)

如下图就是frame buffer和depth buffer
在这里插入图片描述

12.2.2 Z-Buffer 算法

  1. 初始化深度缓存为 ∞ \infty
  2. 在光栅化时,有:
    在这里插入图片描述

例子:

猜你喜欢

转载自blog.csdn.net/weixin_43399489/article/details/120872719
今日推荐