GAMES101 笔记 Lecture06 Rasterization2(Antialiasing and Z-Buffering)

news2024/12/26 11:19:29

目录

      • Antialiasing(反走样)
        • Sampling is Ubiquitous in Computer Graphics(采样在计算机图形学中无处不在)
        • Sampling Artifacts(Errors or Mistakes or Inaccuracies) in Computer Graphics(在计算机图形学中采样的瑕疵)
          • Jaggies(Staircase Pattern)锯齿
          • Moire Pattern in Imaging(摩尔纹)
          • Wagon Wheel Illusion(False Motion)车轮错觉
          • 在走样背后的本质是什么呢?
          • Antialiasing Idea: Blurring (Pre-Filtering) Before Sampling(采样之前进行模糊)
          • But Why?
        • Frequency Domain(频域)
          • Sines and Cosines(正弦和余弦)
          • 傅里叶级数展开
          • 傅里叶变换与逆变换
        • Filtering = Getting rid of certain frequency contents(滤波 = 删掉某些特定的频率内容)
        • Filtering = Convolution( = Averaging) 滤波 = 卷积(平均)
          • 卷积
          • 卷积定理
        • Sampling = Repeating Frequency Contents(采样就是在重复频域上的内容)
        • How Can We Reduce Aliasing Error?
          • 方法1:增加采样率
          • 方法2:反走样
        • Antialiasing By Supersampling(MSAA)
          • Supersampliing(超采样)
          • MSAA的代价是什么?
      • 参考资源

Antialiasing(反走样)

继续上节课:检测一个像素中心是否在三角形内部。
如果一个像素的中心在三角形内部,那么我们就将该三角形涂成红色:
我们就可以得到如下图所示的结果,但是会出现非常严重的锯齿现象。
在这里插入图片描述
我们并不希望出现这么严重的锯齿,这就是本节课要讲的内容——反走样。

Sampling is Ubiquitous in Computer Graphics(采样在计算机图形学中无处不在)

  • 光栅化 = 在二维坐标中的采样
  • 照片 = 采样图像传感器平面
  • 视频 = 在时间上采样

Sampling Artifacts(Errors or Mistakes or Inaccuracies) in Computer Graphics(在计算机图形学中采样的瑕疵)

Jaggies(Staircase Pattern)锯齿

这是采样中的一种Artifacts
在这里插入图片描述

Moire Pattern in Imaging(摩尔纹)

去掉奇数行和奇数列,再将图片放大到原来的大小,就会出现。
在这里插入图片描述

Wagon Wheel Illusion(False Motion)车轮错觉

人眼在时间上的采样跟不上速度就会出现这种情况:
在这里插入图片描述

在走样背后的本质是什么呢?

Signal are changing too fast (high frequency), but sampled too slowly
信号变化的太快,而采样的频率不够高。

Antialiasing Idea: Blurring (Pre-Filtering) Before Sampling(采样之前进行模糊)

先对三角形进行模糊,再进行采样,采样出是什么颜色就是什么颜色。

在这里插入图片描述
如果先去采样再去滤波,结果就是错误的!(Blurred Aliased)

But Why?
  1. 为什么采样的速度跟不上信号的速度就是走样?
  2. 为什么先进行滤波再进行采样可以达到反走样?

Frequency Domain(频域)

Sines and Cosines(正弦和余弦)

在这里插入图片描述
通过调整 x x x前面的系数,影响频率:
在这里插入图片描述

傅里叶级数展开

任何一个周期函数,都可以把它写成一系列正弦函数和余弦函数的线性组合。

傅里叶变换与逆变换

在这里插入图片描述

更高的频率需要更快的采样:
在这里插入图片描述
同样的一种采样方法采样两种频率不同的函数,得出来的结果我们无法区别,这就是走样
在这里插入图片描述

Filtering = Getting rid of certain frequency contents(滤波 = 删掉某些特定的频率内容)

傅里叶变换可以把一个图像从时域变到频域:
在这里插入图片描述
过滤掉低频部分(边缘滤波):高通滤波
在这里插入图片描述
过滤掉高频部分(模糊滤波): 低通滤波
在这里插入图片描述
同时去掉低频和高频:
在这里插入图片描述

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

卷积

在这里插入图片描述

卷积定理

空间中的卷积等于频域中的乘法,反之亦然。
时域的卷积等于频域的乘积。
在这里插入图片描述

Sampling = Repeating Frequency Contents(采样就是在重复频域上的内容)

在这里插入图片描述
走样:频率内容交叉

在这里插入图片描述

How Can We Reduce Aliasing Error?

方法1:增加采样率
  • 本质上是增加了傅立叶域中副本之间的距离
  • 高分辨率设备,传感器,帧缓冲器
  • 但是:增加了消耗
方法2:反走样
  • 在重复之前使傅里叶内容“更窄”
  • 也就是说:在采样之前过滤掉高频部分
    在这里插入图片描述
    对于每个像素内部进行一次卷积,求一次平均:
    在这里插入图片描述
    在这里插入图片描述

Antialiasing By Supersampling(MSAA)

Supersampliing(超采样)

将一个像素细分成许多小像素,然后将每个小的像素的判断结果取平均。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

MSAA的代价是什么?

增加了更多的点,增大了计算量。

参考资源

GAMES101 Lecture06

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[进阶]TCP通信实现BS架构,网站开发的原理,线程池优化BS架构

代码演示如下: 服务端 public class Server {public static void main(String[] args) throws Exception{System.out.println("服务端开启!");//1.创建ServerSocket的对象,同时为服务端注册端口。ServerSocket serverSocket new…

Wang tile(王浩瓷砖)算法解决贴图平铺重复问题

Wang tile(王浩瓷砖) 大家好,我是阿赵。这次来解决一个贴图重复的问题。 一、问题 做一篇很大面积的草地,一般思路是建立一个地面的面片,然后在材质球里面给他做一个Tiling平铺,增大重复次数。这样整个地面都可以被草地的贴图铺满…

Spring Boot 如何使用 @Validated 注解进行数据校验

Spring Boot 如何使用 Validated 注解进行数据校验 在开发应用程序时,数据校验通常是不可避免的。Spring Boot 提供了许多选项来验证应用程序中的数据,其中一个选项是使用 Validated 注解。本文将介绍如何使用 Validated 注解进行数据校验,并…

操作系统-操作系统结构

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心&…

【计算机组成原理】Yy-z02硬布线模型机设计

目录 一、Yy-z02模型机的系统结构 二、Yy-z02模型机的数据通路 三、Yy-z02模型机的指令执行 四、Yy-z02模型机的硬布线控制器 一、Yy-z02模型机的系统结构 指令系统的实现 <--- 构造它的硬件系统 硬件系统构造过程&#xff1a; 分析指令格式和各指令的功能确定部件连…

《机器学习公式推导与代码实现》chapter16-集成学习对比与调参

《机器学习公式推导与代码实现》学习笔记&#xff0c;记录一下自己的学习过程&#xff0c;详细的内容请大家购买作者的书籍查阅。 集成学习&#xff1a;对比与调参 虽然现在深度学习大行其道&#xff0c;但以XGBoost、LightGBM、CatBoost为代表的Boosting算法仍有其广泛的用武…

【Applied Algebra】有限状态机和模型检测初探

【Applied Algebra】有限状态机和模型检测初探 摘要:有限状态机(FSM)和模型检测有密切的联系。有限状态机提供了一种用状态转换图来表示系统行为的简单方法。而模型检测是一种针对形式化模型&#xff08;例如有限状态机&#xff09;的验证技术&#xff0c;旨在自动验证模型是否…

css基础(一)

目录 思维导图 ​一、css简介 1.1 css语法规范 1.2 css代码规格 1. 样式格式书写 2. 样式大小写 3. 空格规范 二、css选择器 2.1 CSS 选择器的作用 2.2 选择器分类 2.3 标签选择器 2.4 类选择器 2.4 类选择器-多类名 2.5 id 选择器 2.6 通配符选择器 2.7 基础选择器总结 三、CS…

D. Running Miles(公式转换)

Problem - D - Codeforces 有一条长为n的街道&#xff0c;其中第i个景点距离街道起点i英里。第i个景点的美丽值为bi。你想要在离街道起点l英里和r英里处开始和结束慢跑。当你跑步时&#xff0c;你会看到你经过的景点&#xff08;包括起点和终点处的景点&#xff09;。你对沿途慢…

Microsoft365有用吗?2023最新版office有哪些新功能?

office自97版到现在已有20多年&#xff0c;一直是作为行业标准&#xff0c;格式和兼容性好&#xff0c;比较正式&#xff0c;适合商务使用。包含多个组件&#xff0c;除了常用的word、excel、ppt外&#xff0c;还有收发邮件的outlook、管理数据库的access、排版桌面的publisher…

CENTOS上的网络安全工具(二十五)SPARK+NetSA Security Tools容器化部署(1)

一、第三代YAF YAF&#xff08;Yet Another Flowmeter&#xff09;是作为CERT NetSA安全工具套件的传感器部分存在的&#xff0c;支持输入实时数据流和PCAP文件&#xff0c;解析并输出流数据&#xff0c;或针对特定协议的深包检测元数据。目前&#xff0c;YAF在整个系统的作用如…

【js30天挑战】第三天:css变量

效果图&#xff1a; 学到的东西 HTML&CSS部分 css变量写法 //定义:root{ //:root 是 CSS 选择器&#xff0c;它匹配文档的根元素&#xff0c;也就是 html 元素。 --base:#FF0081;--spacing:10px;--blur:0px;} //使用img {filter: blur(var(--blur));}input: range类型…

Redis - 数据结构类型及使用场景详解(一)

一. 简介 Redis 是由 Salvatore Sanfilippo 编写的一个key-value存储系统&#xff0c;是跨平台的非关系型数据库。Redis是一个开源的&#xff0c;使用C语言编写的&#xff0c;遵守BSD协议&#xff0c;支持网络&#xff0c;可基于内存&#xff0c;分布式&#xff0c;可选持久性的…

EMC学习笔记(八)阻抗控制(二)

阻抗控制&#xff08;二&#xff09; 1.差分阻抗控制1.1 当介质厚度为5mil时的差分阻抗随差分线间距的变化趋势1.2 当介质厚度为13mil时的差分阻抗随差分线间距的变化趋势1.3 当介质厚度为25mil时的差分阻抗随差分线间距的变化趋势 2.屏蔽地线对阻抗的影响2.1 地线与信号线之间…

Day_54-55

目录 Day_54基于 M-distance 的推荐 一. 关于M-distance 的推荐 1. 基本数据说明 2. 推荐系统的算法过程 3. 简单思考 二. 代码复现 1. 数据导入 2. 代码的初始化 3. 核心代码 3.1 基础数据的构建 3.2 leave-out-leave测试 3.3 误差计算 Day_55基于 M-distance 的推荐 (续) …

对象的构造顺序

问题 C 中的类可以定义多个对象&#xff0c;那个对象构造的顺序是怎样的&#xff1f; 对于局部对象 当程序执行流到达对象的定义语句时进行构造 下面程序中的对象构造顺序是什么&#xff1f; 对于堆对象 当程序执行流到达 new 语句时创建对象 使用 new 创建对象将自动触发构…

python 使用 openpyxl 处理 Excel 教程

目录 前言一、安装openpyxl库二、新建excel及写入单元格1.创建一个xlsx格式的excel文件并保存2.保存成流(stream)3.写入单元格 三、创建sheet工作表及操作四、读取excel和单元格1.读取 excel 文件2.读取单元格3.获取某一行某一列的数据4.遍历所有单元格5.遍历指定行列范围的单元…

Android卡顿优化

卡顿的定义 如果在一个Vsync周期内&#xff08;60HZ的屏幕上就是16.6ms&#xff09;&#xff0c;按照整个上帧显示的执行的顺序来看&#xff0c;应用UI线程的绘制、RenderThread线程的渲染、SurfaceFlinger/HWC的图层合成以及最终屏幕上的显示这些动作没有全部都执行完成的话&…

【C语言】-- X型图案

今天刷了牛客网上的一道题&#xff0c;不难&#xff0c;但思路很重要&#xff0c;否则你就得写一长串代码&#xff0c;下面是要求。牛客网链接->X形图案。 下面是两组示例。 通过观察示例&#xff0c;我们发现输入的数字是奇数时&#xff0c;图案最中间只有一个*&#xff0c…

什么是Ajax?Ajax如何发送请求(详)

本篇来讲关于Ajax的内容&#xff0c;当然还有小伙伴可能不知道该怎么读 "Ajax"&#xff0c;它读 "阿贾克斯" &#xff0c;当然了读法可能因人而异&#xff0c;下面来进入正题&#xff0c;先来了解一下什么是Ajax&#xff1f; Ajax 是什么&#xff1f; Ajax…