简单来说:光线追踪就是从视点和像素两点成一条射线,投射光线到场景中,返回光线碰撞到的物体的颜色。
但是,对每个像素只投射一条光线,会造成锯齿现象。
下面介绍几种在像素格内的采样技术,从而投射多条射线进行颜色中和,从而形成抗锯齿的效果。
随机采样
在2D像素格内,随机选取n个采样点。这些采样点在1D投影上的分布状态并不好,随机采样的效果还是略差。如下图所示:
抖动采样
对像素格进行了分层管理的方法,先等分成n*n个子网格。
然后在每个子网格中进行随机采样。采样分布明显好于随机采样。
n-Rooks采样
n-Rooks采样和抖动的区别是,抖动采样在n*n网格中时需要个采样点,而n-Rooks只需要n个采样点
要求是各行各列中只存在一个采样点。刚开始是生成一条直线(如下图),然后在保持n-Rooks的状态下,随机混合x.y坐标
1D投影尚可,但是2D分布并不如抖动采样。
多重抖动采样
例如在16*16的网格上,添加4*4的网格,视为子网格。在每个子网格中生成一个采样点,然后在子子网格中遵循n-Rooks。
多重采样效果较好。
Hammersley采样
该类采样是基于计算机数字表示法,不算是随机采样。
对整数i,其基数为2 取根的反函数 如下表:
n个2D采样点的序列可以定义为n个采样点pi的集合
其1D投影为等间隔采样,对于给定的n值,只存在唯一一个Hammersley采样。
当邻接像素采用相同的采样点集时,会产生严重失真。所以该方法不适合单独使用