【计算机图形学】光栅化(深度测试与抗锯齿)

备注:本文乃此课笔记:
https://www.bilibili.com/video/BV1X7411F744?p=6
1.采样理论

2.实际光栅化

1.采样理论

在这里插入图片描述

经过三角形光栅化采样算法后,会出现明显的锯齿走样现象
在这里插入图片描述

1.1走样的类型

1.锯齿:采样存在空隙
2.条纹:欠采样、采样过疏
3.车轮效应:时间上的采样
之所以会发生走样,是应为采样过慢,信号的频率太快
在这里插入图片描述

1.2频域

傅里叶变换可以将一个信号转化到频域上。
在这里插入图片描述
滤波器(Filtering) :去掉某些频率内容
图片转化到频域上显示:
在这里插入图片描述
频域这张图越中间代表越低频信息,越靠外代表越高频信息

用高通滤波器,会发现只剩下图像轮廓,这是因为图像的边界会有明显的色彩变化,即频率很高,所以可以滤过来。
在这里插入图片描述
同理。
低通滤波器则是让图片模糊(没有边界了)
在这里插入图片描述
中通则是显示一些渐变轮廓
在这里插入图片描述

1.3卷积(Convolution)

就是一个平均化操作(特定情境)
在这里插入图片描述
在这里插入图片描述
一个结论:空间域的卷积等于频域的乘法,反之亦然
所以图片的卷积操作(模糊化)有两个选项:
选项1:
•在空间域通过卷积进行滤波
选项2:
•变换到频域(傅里叶变换)
•乘以卷积核的傅里叶变换
•变换回空间域(反傅里叶)
在这里插入图片描述
注:选用卷积核越大,频率越低,画面越模糊

1.4采样=重复频率内容

在这里插入图片描述
走样=混合频率内容
在这里插入图片描述

1.5反走样(Antialiasing)

如何减少混叠误差?
方案1:提高采样率
•本质上增加复制之间的距离
傅里叶域中
•更高分辨率的显示,传感器,帧缓冲…
•但是:成本昂贵,可能需要非常高的分辨率
选项2:抗锯齿
•重复之前让傅里叶内容“更窄”
•即在采样前过滤掉高频
在这里插入图片描述
先模糊,后采样(注意光栅化三角形中的反锯齿边缘,像素值取中间值)
在这里插入图片描述

2.实际光栅化

通过平均像素区域的值来抗锯齿
解决方案:
•卷积f(x,y)一个1像素的框模糊
—Recall: convolving = filtering = average
•然后在每个像素的中心取样,通过计算平均像素值来抗锯齿
在光栅化一个三角形时,像素内的平均值f(x,y) =内(三角形,x,y)的面积等于
被三角形覆盖的像素。
在这里插入图片描述

2.1 超采样反走样(Super Sampling AA)

SSAA的想法其实是非常直观的,如果有限离散像素点逼近结果不好,那么我们用更多的采样点去逼近不就会得到更好的结果了吗?所以根据这个思想我们可以把原来的每个像素点进行细分,比如下例中,我们讲每个像素点细分成了4个采样点:

在这里插入图片描述

我们根据每个采样点来进行shading(该概念还未提及,可以理解为计算每个像素点的颜色的过程,当然这里是一个纯红色的三角形,如果该点在三角形内,它的颜色值可以直接得到为(1,0,0)),这样得到了每个采样点的颜色之后,我们讲每个像素点内部所细分的采样点的颜色值全部加起来再求均值,作为该像素点的抗走样之后的颜色值!结果如下:

在这里插入图片描述

当然读者可能还是觉得,这还不是有锯齿,咋就抗锯齿了呢?

仔细观察可以发现因为将4个采样点的颜色求均值的之后,靠近三角形边缘的像素点有的变淡了,从宏观角度来看的话,这个锯齿就会变得不那么明显了。我们可以看看这样一个具体例子。

在这里插入图片描述

怎么样,效果还是相当明显吧!

(tips:SSAA并不局限于分成4个,也可以分更多的,可以自己决定,如果喜欢玩游戏的读者一定知道游戏里面其实就有一个抗锯齿的选项,其中的 × 2 , × 3 , × 4 \times2,\times3,\times4×2,×3,×4,分别代表的就是4个,9个,16个采样点,显然采样点越多抗锯齿效果越好,但计算负担也会随之增加)。

2.2 多采样反走样(Multi-Sampling AA)

MSAA其实是对SSAA的一个改进,显然SSAA的计算量是非常大的,每个像素点分成4个采样点,我们就要进行4次的shading来计算颜色,额外多了4倍的计算量,如何降低它呢?
就只取边缘有锯齿的地方用ssaa。。

至于FXAA,那是先采样,再消除锯齿。
TAA是根据时序采样来抗锯齿的。。

后面或许会补充,这tm都能写1个小时是我没想到的,好浪费时间,焯!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值