光栅化(抗锯齿,反走样)
1.认识采样(Sampling)
1.1什么是锯齿?
首先通过上节我们可以知道,光栅化的采样就是判断像素点是否在三角形内部,最终对在内部的像素进行上色填充:
很明显,处理后的图形与我们原本的图形相差较大,这种现象就叫做锯齿现象,学名叫做“走样”(Alisaing)。而我们要解决的正是消除或缓解锯齿的出现。这个过程叫做“反走样”,或者成为“抗锯齿”。
1.2实际中的采样
把连续信号转换成离散信号的过程称为采样过程(sampling process)
1)光栅化=采样二维位置(Rasterization = Sample 2D Positions)
2)图片 = 对图像传感器平面进行采样(Photograph = Sample Image Sensor Plane)
3)视频=在时间上进行采样(Video = Sample Time)
1.3采样错误的类型
Sampling Artifacts (Errors / Mistakes / Inaccuracies) in Computer Graphics
1)锯齿样:
这也是“混叠”的一个例子——采样错误
2)摩尔纹
采样时跳过了图像中的奇数行和奇数列
手机拍电视
3)车轮效应
高速看车轮转动感觉像是逆时针转
2.认识走样(Aliasing Error)
首先要记住:走样=混叠错误,走样的英语(Aliasing Error)就是混叠错误的意思。
2.1反走样基本思路
基本思路:在做采样之前,先对原始的函数或信号做一个模糊处理(预过滤)Blurring (Pre-Filtering) Before Sampling
不做模糊处理:
请注意栅格化三角形中的锯齿,其中像素值为纯红色或白色。
模糊处理后:
请注意栅格化三角形中的抗锯齿边,其中像素值取中间值。
模糊处理后,再进行采样很明显,可以看出采样点数增加了,因此会更加逼近原图像。并且可以看到边界的点颜色教浅,并且越往外部去越浅,这样就会得到一种更加平滑的效果,不会像之前的锯齿那样变化锐利。
前面提到的图片进行反走样后,就会变成如下效果,可见抗锯齿效果还是很明显的。
下面左图为直接采样,右图为先模糊后采样的效果:
如果先采样后模糊会是什么效果呢?
左图为先采样后模糊,右图为先模糊后采样。
可见,这样的效果并达不到我们想要的抗锯齿效果。
因此,我们现在主要解决两个问题:
1)为什么采样