GAME101-Lecture06学习

前言

上节课主要讲的是三角形的光栅化。重要的思想是要利用像素的中心对三角形可见性的函数进行采样。

这节课主要就是反走样。

课程链接:Lecture 06 Rasterization 2 (Antialiasing and Z-Buffering)_哔哩哔哩_bilibili

反走样引入

image-20240508211643655

通过采样,得到的这个三角形和实际的三角形有很大的区别。这种效果叫做锯齿,学名叫走样(aliasing)

采样产生的问题

artifacts:表示图形学中一切看上去不太对的东西。

采样会产生一系列问题,其本质都是信号(或者说采样的函数)变得太快了,以至于采样的速度跟不上它变化的速度。

  • 锯齿(aliasing)

  • 摩尔纹:将图像的奇数行和奇数列就可以产生

  • 车轮效应:生活中高速行驶的汽车,在视频中看上去的效果可能是倒着转的。人眼在时间中的采样出了问题。

防走样的做法

image-20240508214247976

在采样之前做一个模糊(滤波),可以进行反走样。(而先走样在模糊的话,无法达到效果。)

如图在三角形采样前,做一遍模糊,然后再对这些像素点进行采样。

傅里叶

傅里叶级数展开

image-20240508214953961

任何一个周期函数都可以写成一系列正弦和余弦函数他们的线性组合以及他们的常数项,这就叫做傅里叶级数展开。

傅里叶变换

傅里叶变换和傅里叶级数展开并不是一个东西。

image-20240508215229531

给定任意一个函数f(x),经过一系列操作变成另外一个函数F(x),这个变换过程叫做傅里叶变换。

F(x)通过逆变换也可以变回f(x),叫做逆傅里叶变换。

走样探究

频率

image-20240508214705389

定义f为频率。

用f即可定义波变化有多快,从而也能定义周期T。

傅里叶变换的应用

傅里叶变换可以把一个函数(图形学中将一幅图像看作一个二维函数),从时域(空间和时间都称为时域)变为频域。

image-20240508220729848

我们对左边的图进行一次傅里叶变换,从时域变为频域,就会得到右边的图。

将右边图的中心定义为低频的区域,那么从中心到四周频率会越来越高。不同频率表示的信息多少,我们通过亮度来表示。

右图中,图像的中心是最亮的,而前面我们定义了中心是低频,这就意味着左边的图像中,信息都集中在低频区域。

右图中有一个十字的线。这是做傅里叶变换时会出现的现象。因为在分析一个信号时,会认为它是周期性重复的信号,但是大多数图都是不周期性重复的信号。

  • 可以将左图当作是一个周期,那么这个图的周期性重复就是类似桌面平铺的样子。左图在左右上下边界后就没有画像了,分析的时候看作将这张图左右上下叠了无数个,这就是无数个周期。

  • 此时有了一个问题,大多数图的左右边界是不一样的(即图左右的边缘不一样)。当我们让这幅图和左边重复的图衔接时,衔接处的像素会产生一个剧烈的变化(可以想象成右边界是黑的,但是用来衔接的旁边的左边界是白的,黑到白直接是一个突变),就会产生一个极高的高频。

傅里叶变换能够让我们看到,左边的图像在不同频率长什么样子(即信号在不同频率长什么样,叫做频谱)。

频率中的采样

傅里叶变换就是把函数变成不同的频率的段,然后把不同频率的段显示出来。

image-20240508215406543

  • 更高的频率需要更快的采样

  • 低频信号:充分采样以进行合理的重构

  • 高频信号采样不足:重建错误地似乎是从一个低频信号

如图,绿色曲线表示频率,黑色点表示采样点,蓝色虚线是通过采样点还原的频率。

,如果我们用同样的采样方法来对不同的波进行采样,采样的效果是不一样的。因此,我们需要让函数变化的频率和采样的频率匹配,才能让所有的采样都达到一个想要的效果。

频率中的走样

image-20240508220013124

  • 高频信号采样不足:采样错误地表现为来自低频信号

  • 在给定的采样率下难以区分的两个频率称为“aliases”(走样)

如图,首先让蓝色的函数根据图中白色点的方式进行采样。根据采样的点还原,可以得到黑色的这个函数。

接着假设黑色线是待采样的函数,如果也用白色点的方式进行采样。还原后得到的依旧是这个黑色的这个函数。

同样的一个采样方法,采用两种不同的频率的函数得到的结果,我们无法区分它们,这就叫做走样

滤波

滤波(filtering):把某个特定频段(就是一个规定的范围内的频率)给删除,这个对应的信号是如何变化的,叫做滤波(即去掉一系列频率)

高通滤波

将低频信号全部抹去,只剩下高频的信号的滤波叫高通滤波。

image-20240508223154054

在傅里叶变换的基础上,将低频信号全部抹去,只剩下高频的信号,就是右图。将剩余的高频信号逆处理回去,就是左图。

可以发现,高频的东西其实就是表示图像内容的边界(比如图中的袖口等)。

边界可以理解成是突变比较大的“分水岭”,这个边界左右(或上下)发生了非常剧烈的变化,而图像信息变化快的地方频率就高。

进一步可以认为,高频的地方图片信息变化非常大。

低通滤波

将所有高频信息抹掉,只剩下低频信息的滤波叫低通滤波。

image-20240508224502926

在傅里叶变换的基础上,将所有高频信息抹掉,只剩下低频信息,可以发现所有的“边界”都去掉了,整个图像是一个模糊的样子。

特定频段滤波

image-20240508224613677

将高频和低频的信息都去掉,留下某一段特定频率的信息,此时提取到的是一些不那么明显的“边界”特征。

image-20240508224809092

同样,如果左侧留下的光圈更加外边(更接近高频),那么这个“边界”特征会越明显。

卷积、平均

平均(averag)操作:可以想象成低通滤波,造成模糊的效果。

卷积操作

image-20240508225213647

image-20240508225457436

假设滤波器(filter)是一个窗口,窗口中有若干个各自。将信号与滤波窗口进行点乘操作(第三行的式子),点乘的结果写回窗口的中心值。

其实就是将某个原始的信号取其周围的信号进行加权求和,得到一个新的信号。任意一个数都是周围若干数的平均。

将某一种滤波作用在一个信号上,进行卷积操作(点乘加权平均),得到一个新的信号。这是图形学简化后的定义,不是数学上的定义

(这就是卷积能够提取特征的原因)

卷积定理

image-20240508232754543

对一个图像进行卷积操作,得到新的图像。对应的就是将原本图像对应的信号,乘以一个信号,就会得到一个新的信号,被乘数的那个信号就是卷积,新的信号就是新的图像。

时域的卷积 = 频域的乘积,反之亦然

卷积盒

image-20240510145425636

卷积盒可以看作是一个滤波器,卷积操作就是一个低通滤波器,让图像更加模糊。

写成图中数字加盒子的形式,相当于是一个归一化的操作。

image-20240510150252559

卷积盒的范围变大,对应的频率是变小的,结果更加模糊。

原因个人是这么理解的:

  • 假设在这个box变得超级大,大到以任意一个像素为中心,都能覆盖得了所有得像素。

  • 看前面的卷积操作的计算方式,其实就是以每一个像素为中心,box覆盖到的像素一起取平均。每个像素取平均的值,在box超级大时,就可以认为是同一批数据。

  • 那么卷积操作后,无限大的box导致每个像素长得一摸一样。这就是模糊到了一个程度,整张图看不出任何信息。相当于边界全部没有了。卷积盒box越大,边界越少,图像信息越来越少,图像越来越模糊。

  • 在频域中,如上图box变大后,频域图中间的亮点们变小变淡了。前面我们将亮度高的当作高频,这里就相当于高频越来越少。卷积盒box越大,高频信息越来越少。

频域中的采样

image-20240510153725359

左图是在时域中的三个函数。我们用函数c(冲激函数)乘以函数a,就可以得到函数a上离散的点(函数e)。函数e就是采样结果。

右图是各个函数对应在频域上的函数。时域上函数相乘变成一系列的点,对于到频域上,就是把原始的函数的频谱复制粘贴。(时域的乘积等于频域上的卷积。)

在频域中,采样就是在重复频率或者频率上的内容。

频域中的走样

image-20240510154055787

采样在频域中就是将频谱复制粘贴。

正常情况下,依次的复制粘贴如图中第一个函数的样子。但是如果采样的过快,一段没有复制粘贴完,另一段就又要复制粘贴上来,就会导致频谱之间的间隔越小,信号混在了一起,就是走样。

这里时域和频率的解释是相反的关系,采样的越稀疏(采样的频率越小),对应频谱上就越密集(时域上的信号就会叠在一起),这种情况下就是走样。

防止走样的措施

image-20240510154629224

  • 如何减少混叠误差(走样)?

  • 方案1:提高采样率本质上增加了傅立叶域中样本之间的距离

  • 比如:更高分辨率的显示器、传感器、帧缓冲器..

  • 但是:成本高&可能需要非常高的分辨率

  • 选项2:抗锯齿(防走样)

  • 在重复之前使傅里叶的内容“变窄”

  • 比如:在采样前滤除高频

反走样探究

原理

image-20240510154956339

先做一个模糊,去掉高频,让频谱覆盖的面小一些,这样就能防止频谱重叠。

模糊方法

严格意义上来说,MSAA这些抗锯齿技术都是对反走样的近似,不能完全解决放走样。

MSAA

image-20240510160327658

  • 通过对一个像素内的多个位置进行采样并取其值的平均值,来近似模拟1像素箱形滤波器的效果。

例子展示

image-20240510160909144

假设有一个三角形覆盖了一些像素。

  1. image-20240510160945511

    在每个像素中取NxN样本。

    假如像素内部多一些采样点,比如用2*2的点

  2. image-20240510161049424

    在像素内部取采样点后,查看采样点在三角形内外的情况。

    为方便显示,我们可以让像素内部的采样点在三角形内的越多,颜色越深。

  3. image-20240510161422802

    最终的结果,我们将得到每个实际像素在三角形中的覆盖率。

MSAA是对反走样的第一步模糊进行操作,而下一步的采样操作是隐含在这个过程中的。

注意

MSAA不是通过提高分辨率直接解决走样问题。(增加采样点是近似合理的覆盖率,并没有真的提高分辨率)

在实际运用时,对像素处理的方法并不是像例子取像素中心然后规则的矩形的增加采样点。实际中人们会用其他更加有效的图案,并且有些点会被临近的像素复用。

FXAA

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

图像的后期处理,先得出一张图。通过图像匹配的方式找到图中的锯齿,然后把他换成模糊。(但是注意前面有说过,不能先得到一张有锯齿的图再做模糊)

这个技术中没有涉及到采样,是在图像层面上做的抗锯齿。

TAA

TAA (Temporal AA)

假如场景是静止的,相邻两帧显示的一样,但是相邻两帧一个像素内部不同位置上的点来感知是否在三角形内。

在时间范围内得到的静态的场景图的边界会各不相同。TAA复用上一帧的感知结果,相当于将MSAA的样本分布在时间上。

如果是动态的,就是光线追踪(TAA和光线追踪用的是同一个思想)

超分辨率

一张图将其大小变大(比如512*512变成1024*1024),单纯的拉大会看上去图全都是锯齿。如果不想看到锯齿,就需要一个超分辨率的过程。

本质上是高分辨率的图采样率不够。

DLSS

通过深度学习的方法实现超分辨率的过程(就是猜)

总结

前提:图形学中将一幅图像看成一个二维函数。

频率、频谱

频率用来表示波变化的快慢。

一个函数(图像)经过傅里叶变换后,能够得到其频谱。

  • 函数f通过变换能够变成另一个函数F,f通过逆变换也能够变回F。变换过程就叫做傅里叶变换或逆傅里叶变换。

  • 频谱是图像(信号)在不同频率的样子,是频率的分布曲线。

  • 在频谱中,每间隔一段就取一个数据点,这个取点的过程叫做采样

  • 同样的一个采样方法,采用两种不同的频率的函数得到的结果,我们无法区分它们,这叫做走样

滤波

将某一范围内的特定频率去掉的过程称为滤波

个人理解滤波其实就是一个函数,将图像(信号、函数)与这个滤波函数叠加,就能实现实现滤波的效果。

高通滤波就是能够去掉低频频段的函数(信号)。图像增加高频滤波后,图像边界将变得明显。

同理,低通滤波就是去掉高频频段的函数(信号)。

除此之外还有一些特定频段的滤波。图像增加低频滤波后,图像将变得模糊。

卷积

卷积在图形学中就是加权求平均。

卷积操作就是一个低通滤波器

  • 将某一种滤波作用在一个信号上,进行卷积操作(点乘加权平均),得到一个新的信号。

  • 这是图形学简化后的定义,不是数学上的定义

卷积定理主要是证明了时域的卷积 = 频域的乘积,反之亦然。

  • 从例子上看,就是一个图像进行卷积操作后得到新的图像,在频域中就是一个频谱乘以卷积操作的频域得到一个新的频谱。

卷积盒可以看作是一个滤波器

  • 卷积盒box越大,边界越少,图像信息越来越少,图像越来越模糊。

频域中的定义

采样在频域中就是将频谱复制粘贴。

  • 时域上函数相乘变成一系列的点。

  • 对应到频域上,就是把原始的函数的频谱复制粘贴。

复制粘贴的频谱之间的间隔越小,频谱重叠在了一起(信号混在了一起)就是走样。

采样的越稀疏,采样的频率越小,对应频谱上就越密集(时域上的信号就会叠在一起)。

反走样

在采样之前做一个模糊(滤波)可以达到反走样的效果。

  • 需要模糊的话需要做低通滤波。去掉高频,在频域的体现就是频谱覆盖的面会小,防止频谱重叠。

MSAA、FXAA和TAA都是做模糊一些技术。

  • MSAA是增加像素的采样点,近似合理的覆盖率,从而达到模糊的效果。

  • FXAA则是先采样,形成图像后,再利用图像匹配找到锯齿的部分,模糊处理后替换锯齿部分(但是会违背采样之前做一个模糊的理论,这样达不到很好的效果,优点是很快)

  • TAA则是会复用上一帧的感知结果,相当于将MSAA的样本分布在时间上。

后记

这节课的知识真的多且难,分了两天看才看完。。。

感觉开始慢慢接触专业的知识了,闫老师的课确实很厉害,讲的真的很好。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/613249.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

18 分页:介绍

目录 简单例子 页表存在哪里 列表中究竟有什么 分页:也很慢 内存追踪 小结 在解决大多数空间管理问题上面,操作系统有两种方法: 第一种就是将空间分割成不同长度的分片,类似于虚拟内存管理中的分段,但是这个方法…

【redis】Redis五种常用数据类型和内部编码,以及对String字符串类型的总结

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

设计模式 六大原则之单一职责原则

文章目录 概述代码例子小结 概述 先看下定义吧,如下: 单一职责原则的定义描述非常简单,也不难理解。一个类只负责完成一个职责或者功能。也就是说在类的设计中, 我们不要设计大而全的类,而是要设计粒度小、功能单一的类。 代码例…

提高Rust安装与更新的速度

一、背景 因为rust安装过程中,默认的下载服务器为crates.io,这是一个国外的服务器,国内用户使用时,下载与更新的速度非常慢,因此,我们需要使用一个国内的服务器来提高下载与更新的速度。 本文推荐使用字节…

AI大模型探索之路-训练篇15:大语言模型预训练之全量参数微调

系列篇章💥 AI大模型探索之路-训练篇1:大语言模型微调基础认知 AI大模型探索之路-训练篇2:大语言模型预训练基础认知 AI大模型探索之路-训练篇3:大语言模型全景解读 AI大模型探索之路-训练篇4:大语言模型训练数据集概…

Linux 安裝 rpm包

下载 地址:https://developer.aliyun.com/packageSearch 安装 rpm -ivh lsof-4.87-6.el7.x86_64.rpmlsof -Ki|awk {print $2}|sort|uniq -c|sort -nr|head lsof | wc -l

读天才与算法:人脑与AI的数学思维笔记24_预测性文本生成器

1. 起源 1.1. 人类讲故事可能起源于“假如……”这种问答结构 1.2. 讲故事是人类做安全试验的一种方式 1.2.1. 如果你问一个人“假如……”,其实是在探索你的行为对他可能带来的影响 1.3. 最早出现的故事极有可能就源自我们对在周遭混乱的环境中寻找某种秩序的渴…

06_图(Graph)

图的定义 图(Graph)是由顶点的有穷非空集合和顶点之间的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点集合,E是图G中边的集合。 对于图的定义,需要注意的地…

矩阵和空间变换理解

矩阵和空间变换 把向量和矩阵相乘看作是空间变换,是其中一种看法 代数角度:向量的一行和矩阵的一列逐项相乘再相加等于新向量的一项 w代表原来坐标轴和新坐标轴之间的变换关系,而a和b体现的是原来向量的关系 矩阵代表的是旧坐标和新坐标之间…

Redis 实战之命令请求的执行过程

命令请求的执行过程 发送命令请求读取命令请求命令执行器(1):查找命令实现命令执行器(2):执行预备操作命令执行器(3):调用命令的实现函数命令执行器(4&#x…

深入了解 PCIe 6.0 的演变和优化

PCI-Express是继ISA和PCI总线之后的第三代I/O总线,即3GIO。由Intel在2001年的IDF上提出,后来PCI-SIG(PCI特殊兴趣组织)认证发布后才改名为“PCI-Express”。它的主要优势就是数据传输速率高,另外还有抗干扰能力强&…

Python 日志模块Loguru基本使用和封装使用

【一】介绍 Loguru是一个用于Python的日志库,它的设计目标是使日志记录变得简单、快速且易于阅读。 (1)Loguru介绍 简洁的API:Loguru提供了一个简洁的API,使得在Python项目中使用日志变得更加容易。只需导入loguru模…

flac和mp3的区别是什么?答案在这里

在数字音乐时代,音频格式的选择对于音质和文件大小的影响至关重要。FLAC和MP3是两种常见的音频格式,它们在音质和压缩方式上存在明显的差异。了解flac和mp3的区别,有助于我们在不同的场景下选择合适的音频格式,以获得最佳的音乐体…

N5183B是德科技n5183b信号源

181/2461/8938产品概述: 简  述: N5183B 频率范围:9 kHz 至 20 GHz,具有 AM、FM、相位调制功能。N5183B MXG X 系列微波模拟信号发生器拥有 9 kHz 至 40 GHz 的频率覆盖范围,以及接近 PSG 级别的相位噪声性能&…

使用 Express 框架构建的 Node.js web 应用程序

使用 Express 框架构建的 Node.js web 应用程序 ├── config │ └── config.js ├── middlewares │ └── errorHandler.js ├── routes │ ├── index.js │ ├── postRoutes.js │ └── userRoutes.js ├── .env ├── .gitignore ├── app.js ├…

【Centos7 】Centos7yum报错:another app is currently holding the yum lock;解决方案

Centos7 yum报错:another app is currently holding the yum lock;waiting for it to exit 大家好 我是寸铁👊 总结了一篇Centos7 yum报错:another app is currently holding the yum lock;waiting for it to exit✨ 喜欢的小伙伴可以点点关注 💝 报错 解…

【Linux系统编程】第十六弹---冯诺依曼体系结构与操作系统

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、冯诺依曼体系结构 2、操作系统原理 2.1、什么是操作系统? 2.2、用图解释操作系统 2.3、理解操作系统 总结 …

上班工资太低了,哪些副业可以多赚钱?

今天给各位分享最赚钱的副业方式的知识,其中也会对比较赚钱的副业进行解释. 1、网站接单 一般20页左右的PPT报价基本在200-400元。如果能每周接单,一个月就有接近1000元的副业收入。提交摄影和绘画作品 比起画画,靠摄影赚点外快更容易一点。…

11.买卖股票的最佳时机Ⅰ

文章目录 题目简介题目解答解法一:一次遍历代码:复杂度分析: 题目链接 大家好,我是晓星航。今天为大家带来的是 买卖股票的最佳时机面试题Ⅰ 相关的讲解!😀 题目简介 题目解答 解法一:一次遍历…

蓝桥杯成绩已出

蓝桥杯的成绩早就已经出来了,虽然没有十分惊艳 ,但是对于最终的结果我是心满意足的,感谢各位的陪伴,关于蓝桥杯的刷题笔记我已经坚持更新了49篇,但是现在即将会告别一段落,人生即将进入下一个规划。我们一起…