光学课堂 首页 资讯 查看内容

ZEMAX光学设计实例(191)---随机采样VS Sobol采样

2023-3-16 12:05| 发布者:形腿望舞| 查看:15087| 评论:0

摘要:本文介绍在ZEMAX非序列模式下,使用随机采样和Sobol采样对两个矩形光源进行仿真,并比较它们的采样效果。通过追踪不同数量的光线,展示了Sobol采样相对于随机采样在均匀性和信噪比方面的优势。但在任何蒙特卡罗模拟中,最终使用真正的随机数生成器生成多个样本仍是最准确的方法。
作者:小小光08
引言:
一个光源会在三维空间以及角度空间中随机产生光线分布。比方说,一个点光源的发出位置不变,而光线方向按照余弦来均匀分布。当进行渲染时,必须发出足够多个光线,才能精确描述这个点光源。
  光线的随机产生通常使用随机数产生器,随机数产生器的目标是制造一系列互相无关的随机数,然后追踪大量的随机光线,在运算量较小的情况下获得尽可能高的渲染结果。
  所有基于现代 CPU 的随机数生成算法都是伪随机的(quasi-random)。它们受限于一个周期。当超过周期后就会重复出现,而不再是相互无关的随机数。这个周期的最终限定是由电脑的位数来决定的,因此,没有一个内建的随机数是“真正”随机的。
  Sobol 采样使用了不同的方式来采样。比起随机数,Sobol序列着重于在概率空间中产生均匀的分布。但这并不是单纯的使用网格来填满,而是使用一个本质上随机,但是巧妙的方法去“填满”概率空间,即之后产生的随机数会分布到之前没有采样到的区域。本例中在ZEMAX非序列模式下,使用两个矩形光源分别仿真Sobol采样和随机采样来照亮同一个探测器。本例参考community.zemax.com/Knowledgebase。设计仿真:在ZEMAX非序列模式下,建立两个矩形光源,分别仿真Sobol采样和随机采样。NSC Editor设置如下图:




NSC 3D Layout,如下图:


上图中,上半部分(蓝色)为Sobol采样,下半部分(绿色)为随机采样。如果我们追迹10,000条光线,查看下探测器上的采样情况,如下图:


从上图可以看出,Sobol采样和随机采样的差别不大。如果我们追迹105条光线,查看下探测器上的采样情况,如下图:


从上图可以看出,Sobol采样和随机采样的差别就比较大了。此时,Sobol采样还属于定性随机采样,但它比随机采样的分布要均匀得多。再分别追迹106、107、108、109光线时Sobol采样和随机采样的情况:106


107


108


109


不管追迹光线数较少(104条),还是追迹光线数较多(109条)时,Sobol采样的追迹结果都是相似的。因此,Sobol采样在“最有效区域(sweet-spot)”最有用。随机采样的信噪比(SNR)是SQRT(N),其中N是击中像素的平均光线数。对于Sobol采样,信噪比随N线性变化。当追迹109光线时查看光线线分布的横截面可以看出:


但是,注意Sobol采样并不是一个灵丹妙药(Magic Bullet)。在这种情况下,我们知道光源的辐照度是均匀的。我们对预期分布的先验知识允许我们声称Sobol采样在这种情况下是“更好的”。然而,在任何蒙特卡罗模拟中,最终都没有比使用真正的随机数生成器生成多个样本更准确的方法了。出于这个原因,ZEMAX允许你在对象属性的source选项卡中选择Sobol采样方案,或者使用ZEMAX的长周期随机数生成器,如下图所示:




路过

雷人

握手

鲜花

鸡蛋

最新评论

联系客服 关注微信 访问手机版 返回顶部