随机 vs Sobol采样(Random vs Sobol Sampling)
一旦光源模型的参数被定义,便可模拟离开光源随机生成的光线。此过程包括生成随机数,以该值的一定比例来表示起始坐标的值和光线的方向余弦。注意,起始坐标描述近场光源属性,而方向余弦表示远场属性。
但并非总是希望得到真正的随机。原因是随机数往往不能均匀分布在采样参数空间(如果采样的数量很小)。随机数可以组合在一起,从而在采样空间留下相对较大的差距。在实践中,这意味着需要大量光线才能获得足够的采样,以产生各种平滑的光线。
一种解决方案是使用看似定性随机,但实际上精心选择分布以便最佳"填充"以前未采样的空间的一种采样算法。一种广泛使用的算法是称为Sobol采样的伪随机采样算法。有关此算法的详述,请参阅Press、Flannery、Teukolsky和Vetterling合著的由剑桥大学出版社出版的《Numerical Recipes》。
下图显示了两个矩形光源的近场光线样式。此处显示的第一种光线样式使用随机采样。注意,分布没有任何明显的周期性伪迹。

一些光线彼此非常接近,而其它相对大的区域则不包含任何光线。在实践中,这将在探测器上生成"噪声"辐照度分布,因为一些像素将包含一条或两条光线,而其它像素将不包含任何光线,即使光源采样均匀。
对于随机光线,信噪比(SNR)大约由N / sqrt(N) = sqrt(N)给出,其中N为每像素的光线数。对于具有许多像素的大型探测器,可能需要大量的光线才能获得较高的信噪比。例如,假设在均匀光源的最佳情形下,具有10,000个像素的探测器将需要大约1亿条光线才能获得信噪比100。对于更实际和现实的光学系统,光线数量越少,获得的信噪比就越低。
下图显示了使用Sobol伪随机采样网格在相同探测器上追迹相同数量的光线的情形。注意,如果光线分布越均匀,则差距相对较少且彼此非常接近的光线越少。随着追迹的光线的数量增加,光线会始终选择探测器上位于已经追迹的光线之间的点,从而使得分布更精细且更均匀。由于这已超出本文讨论的范围,因此使用Sobol采样的信噪比大约接近于N,而不是sqrt(N)。对于上例中的10,000个像素,只需要追迹大约100万条光线就可获得信噪比100,效率提高了100倍。

Sobol算法有两个缺点。第一,有时光线分布中存在人眼可以察觉到的细微伪迹。
对于某些光学系统,如果采样太低,则这些伪影可以显示在探测到的辐照度中作为假的伪周期结构。第二,使用Sobol算法生成的光线始终相同。
追迹M条光线,然后追迹M条以上光线,将会生成与追迹第一组M条光线完全相同的结果;而追迹2M条光线将生成不同的结果。这就是为什么当在视图上绘图时使用Sobol采样的光源将始终追迹完全相同的光线的原因。要获得不同光线的唯一方法是同时追迹大量的光线。尽管如此,使用Sobol采样一般可以使用比随机采样更少的光线产生更快的收敛。
并非所有光源模型都需要或支持Sobol采样。如果光源模型不支持Sobol采样,则此控件将显示为灰色。一些光源模型仅为生成的光线的某个部分提供Sobol采样,如光线起始坐标处,而非光线的其它部分,如光线起始方向余弦处。 对于支持Sobol采样(无论是为生成光线的某个部分还是所有部分)的所有光源,当第一次将此方法添加到系统后,它将是光源的默认采样方法(如光源选项卡中给出)。
下一部分: