当前位置: 首页 > news >正文

Ansys Zemax | 什么是Sobol取样?

附件下载

联系工作人员获取附件

本文主要介绍了:

  • 什么是Sobol取样?

  • 和随机光线产生方法相比,Sobol取样有什么优点?

  • Sobol取样有什么限制?

随机取样和Sobol取样模式

一个光源会在位置空间以及角度空间随机产生光线分布。例如,一个点光源发出起始点位置不变、某一方向余弦范围内均匀分布的光线。当对该光源进行光线追迹时,必须发出足够多根光线,才能准确的描述该点光源。 

光线的随机产生通常使用随机数产生器,随机数产生器的目标是为了制造一系列互相无关的随机数,然后(通过生成大量随机数)追迹大量的随机光线就可以对光源准确的取样。

当然,所有基于电脑的随机数生成算法都是伪随机的(quasi-random)。它们受限于一个周期,当超过周期后就会重复出现,而不再是相互无关的随机数。这个周期的最终限定是由电脑的位数来决定的,因此,没有一个内建的随机数是“真正”随机的。(但是本文我们认为OpticStudio中的长周期随机数产生器是“真正”的随机,这样就可以用来和Sobol取样模式对比。)

Sobol 取样使用了不同的方式来取样。相比于随机数,Sobol 采样重点在于在概率空间产生均匀的分布。这并不是单纯的使用格点取样,从概率上来讲,格点取样也是定性随机的,它巧妙的填补了使用之前随机数产生器无法采样到的概率空间。

本文以一个简单的光学系统为例,系统中两个矩形光源照亮探测器,此光源会产生均匀的矩形光线分布。下图为光线追迹的结果,图中上方为随机取样下方为Sobol 取样。

图片

如果我们对每个光源都追迹10^4条光线,Detector Viewer结果图如图2所示,图中很难看出两者的差距。

图片

如果将追迹光线数目增加到10^6,就可以看出两者的差别。Sobol 取样模式产生光线比随机取样更加均匀。当然,Sobol 取样的本质依然属于随机分布。从图中可以看出,随机取样的分布为“块状”,可以看到较多不均匀的亮点以及较暗的区域。

图片

如果将随机取样的结果图放大,可以看到如下图。随机取样产生的光线分布比Sobol 取样噪声大。

信噪比

下图分别为追迹10^6、10^7、10^8、10^9光线时随机取样和Sobol 取样信噪比对比图。

图片

图片

 

从图中可以看出。当我们追迹光线非常少(1万)或者非常大(10亿)时,Sobol 取样和随机取样的结果非常相似。因此Sobol 取样主要是在一些“特殊区域”有效。随机取样光线追迹的信噪比为sqrt(N),其中N为击中每个像素的平均光线数;而对于Sobol 取样模式,信噪比和N成线性关系。这可以从10亿条光线追迹图的Cross-Section中理解。

Sobol 取样并不是万能的,在本文范例中我们已经知道了光源应该是均匀分布的,因此可以确定Sobol 取样优于随机取样。但是请注意在所有的Monte Carlo分析过程中没有一种方法比随机取样更准确。因此,OpticStudio允许使用着自己决定是使用Sobol 取样还是使用OpticStudio内置的长周期随机数产生器。使用者可以在对象属性编辑窗中的Source栏下选择。

结论

在进行蒙特卡罗追光模拟时,Sobol 取样可以减少模拟时间。一般来说,Sobol 取样比随机数产生器产生的光线更快收敛。

http://www.lryc.cn/news/432125.html

相关文章:

  • Unity 热更 之 【YooAsset 热更】Unity 可以进行热更的资源管理系统,并 【Android 端简单实现·案例热更】
  • vue3写一个无限树形菜单,递归组件
  • 3D建模主要使用哪些软件?有什么特点?
  • Android Studio 加载多个FLutter项目
  • SealSuite 一站式 IT 管理与办公安全解决方案,助力出海企业夯实数字化底座
  • l超市售货管理系统小程序的设计
  • systemverilog、verilog的部分常用内部函数
  • Python趣味绘图案例
  • P3588 [POI2015] PUS
  • 指针(四)
  • 0902,DEQUE,LIST,VECTOR
  • LeetCode 每日一题 2024/9/2-2024/9/8
  • Linux中的Vim文本编辑器
  • rancher搭建k8s及jenkins自动化部署
  • vue el-dialog嵌套解决无法点击问题
  • c# c++程序 交互
  • 解决ruoyi框架中使用pagehelper插件分页查询后对数据进行对象转换后失效问题
  • RabbitMQ 应用
  • 使用Python读取Excel数据的详细指南
  • VitePress 动态路由与路径加载器详解
  • C#编程语言及.NET 平台快速入门指南
  • 高等代数精解【9】
  • 谷粒商城の缓存篇
  • 永远学习:为什么人工智能难以适应新挑战
  • 【spring】 Jackson :@JsonIgnore 注解
  • Dependencies与DependencyManagement的区别
  • git svn 日记
  • FSMC
  • NAT技术+代理服务器+内网穿透
  • 【ABAP】ole2 excel多sheet导入导出