参考博客:GAMES101 梳理 / 个人向图形学笔记_games101笔记_river_of_sebajun的博客-CSDN博客
lecture 05 Rasterization 1(Triangles) 光栅化
把东西画在屏幕上的过程就是光栅化的过程
- 视口变换
为什么模型用三角形?
最基本的几何平面;保证是平面;容易进行插值操作(重心坐标)
2、怎么判断三角形和像素的关系?
实际上就是用像素对图像进行采样,会出现锯齿(aliasing)。
解决方法:出现锯齿,进行反走样(antialiasing),先进行模糊操作再进行采样。
为什么模糊操作可以反走样?采样就相当于在时域用冲激函数对原函数做乘积,而采样频率越低,冲激函数频率越低,在频域的表现,冲激函数频率越高。而频域的原函数对冲激函数进行卷积操作,相当于对原函数图像的重复,冲激函数频率越高,越容易出现混叠。模糊操作消去了高频信号,高频信号便不容易混叠。
*傅里叶变换,时域与频域,高频与低频,卷积算子。
*时域的卷积相当于频域的乘积,时域的乘积相当于频域的卷积。
真正的反走样不好算。可能是因为进行滤波之后不好判断三角形和像素的关系?
现实点的解决方法:
1、提高分辨率,就不关图形学的事儿了;
2、MSAA(multisampling AA)/超采样,把一个像素变成多个像素进行采样,得到的值求平均,还是用一个像素来表现,近似了模糊的操作,并没有提高分辨率,缺点是效率问题(问了老师,老师把antialising叫做反混淆,实际指的可能就是MSAA?);
3、FXAA(fast approximate AA),图像处理层面,对生成的锯齿图去锯齿;
4、TAA(temporal AA),把MSAA对样本的处理分布在时间上。
5、超分辨率/超采样/DLSS(deap learning super sampling)
*这一块的前提好像就是模型的复杂度/图像的分辨率足够,采样点不足。如果采样点足够多,就不会出现锯齿现象!