本文主要介绍了:
什么是Sobol取样?
和随机光线产生方法相比,Sobol取样有什么优点?
Sobol取样有什么限制?
随机取样和Sobol取样模式
一个光源会在位置空间以及角度空间随机产生光线分布。例如,一个点光源发出起始点位置不变、某一方向余弦范围内均匀分布的光线。当对该光源进行光线追迹时,必须发出足够多根光线,才能准确的描述该点光源。
光线的随机产生通常使用随机数产生器,随机数产生器的目标是为了制造一系列互相无关的随机数,然后(通过生成大量随机数)追迹大量的随机光线就可以对光源准确的取样。
当然,所有基于电脑的随机数生成算法都是伪随机的(quasi-random)。它们受限于一个周期,当超过周期后就会重复出现,而不再是相互无关的随机数。这个周期的最终限定是由电脑的位数来决定的,因此,没有一个内建的随机数是“真正”随机的。(但是本文我们认为OpticStudio中的长周期随机数产生器是“真正”的随机,这样就可以用来和Sobol取样模式对比。)
Sobol 取样使用了不同的方式来取样。相比于随机数,Sobol 采样重点在于在概率空间产生均匀的分布。这并不是单纯的使用格点取样,从概率上来讲,格点取样也是定性随机的,它巧妙的填补了使用之前随机数产生器无法采样到的概率空间。
本文以一个简单的光学系统为例,系统中两个矩形光源照亮探测器,此光源会产生均匀的矩形光线分布。下图为光线追迹的结果,图中上方为随机取样下方为Sobol 取样。
图1 光线追迹NSC 3D Layout图
如果我们对每个光源都追迹10^4条光线,Detector Viewer结果图如图2所示,图中很难看出两者的差距。
图2 追迹10^4条光线的Detector Viewer图
如果将追迹光线数目增加到10^6,就可以看出两者的差别。Sobol 取样模式产生光线比随机取样更加均匀。当然,Sobol 取样的本质依然属于随机分布。从图中可以看出,随机取样的分布为“块状”,可以看到较多不均匀的亮点以及较暗的区域。
图3 追迹10^6条光线的Detector Viewer图
如果将随机取样的结果图放大,可以看到如下图。随机取样产生的光线分布比Sobol 取样噪声大。
图4 追迹10^6条光线的Detector Viewer放大图
信噪比
下图分别为追迹10^6、10^7、10^8、10^9光线时随机取样和Sobol 取样信噪比对比图。
图5 追迹10^6、10^7、10^8、10^9光线时随机取样和Sobol 取样信噪比对比图
从图中可以看出。当我们追迹光线非常少(1万)或者非常大(10亿)时,Sobol 取样和随机取样的结果非常相似。因此Sobol 取样主要是在一些“特殊区域”有效。随机取样光线追迹的信噪比为sqrt(N),其中N为击中每个像素的平均光线数;而对于Sobol 取样模式,信噪比和N成线性关系。这可以从10亿条光线追迹图的Cross-Section中理解。
图6 追迹10^9条光线图的Cross-Section图
Sobol 取样并不是万能的,在本文范例中我们已经知道了光源应该是均匀分布的,因此可以确定Sobol 取样优于随机取样。但是请注意在所有的Monte Carlo分析过程中没有一种方法比随机取样更准确。因此,OpticStudio允许使用着自己决定是使用Sobol 取样还是使用OpticStudio内置的长周期随机数产生器。使用者可以在对象属性编辑窗中的Source栏下选择。
结论
在进行蒙特卡罗追光模拟时,Sobol 取样可以减少模拟时间。一般来说,Sobol 取样比随机数产生器产生的光线更快收敛。