蒙特卡洛积分模拟是离线渲染中一个最常用的方法,而关于其各种优化的研究有很多就是集中在改进其采样的模式。事实也确实如此,采样模式对最终的质量以及收敛速度会有很大的影响,比如需要做一个最简单的球面采样来计算ambient occlusion,可能就不会使用较原始的均匀分面采样,而会使用Cosine weighted sampling(属于Importance sampling)、spherical stratified或jettered sampling(属于Stratified sampling)。
Stratified sampling通过对原始的采样区域进行分割,然后确保每个区域内均有一定数量的采样点,这样就避免了在随机均匀采样中可能出现的一些区域漏掉采样的情形,进而在相同数量的采样点的情况下得到更好的采样质量。在做离线渲染时最常见的采样区域就是半球区域,对于半球面而言一个比较简单的stratified sampling方式就是对球面使用类似于经纬坐标分割的方式来进行区域的分解,然后对每个子区域进行一定数量的采样,最终就得到了stratified sampling。但是这里会有一个问题:使用经纬方式进行的区域分割得到的最终球面映射并不是很均匀,在极端与球面中间所得到的分布区域显然不同,因而这个也会在一定程度上对质量产生影响 。更好的一种方法是对球面进行绝对均匀的分割,然后在各个子区域上进行采样,这个研究也还是蛮多的。
最近看到了另外一种采样方法:Capitulum