光线追迹程序通常将光线视为纯粹的几何实体,其只拥有位置、方向和相位等资讯。例如,光线在表面上完全可以通过光线交切点座标说明,然后用方向余弦定义在局域坐标轴上的光线角度,并且用相位确定沿着光线累积的光程长或光程差。

在两种介质(如玻璃和空气)之间的边界,根据Snell's Law可能会发生折射或反射。但除此之外,在这个介面上对光束方向可能产生的任何影响也很重要。这些影响包括电场的振幅和相位变化,取决于入射角、入射偏振态、两种介质的属性和表面的任何光学膜层。

偏振分析是一般光线追迹的延伸应用,在光学系统中考虑光学膜层对光学传播造成的反射、吸收和损失效应。它在序列和非序列系统中我们都支持这种计算。

此外,我们还可以计算接触面上的散射。散射是源于表面纹理的微结构:在足够微小的尺度下,即使经过“平滑”抛光的玻璃的表面实际上也是粗糙的,而这导致离开光线离开的方向受到扰动,而有散射发生。在光线追迹中过一个实体物件的时候,也可能因为我们在物体中加入了材料,而让光线在通过材料时发生散射。这种情况我们称为“体散射”。

1:偏振

一条光线除了位置和方向,可我们还可以定义他的复数电场向量E = (E x , E y , E z )来描述光线的振幅和偏振状态。由于E向量必须和光线方向向量k(通过光线的(l, m, n)方向余弦定义)正交,因此k . E = 0,并且

E x .l + E y .m +E z .n = 0

由于我们了解方向余弦,因此只需指定E x和E y的复数,然后E z会自然被决定出来(假设归一化)。因此我们可以只使用2D的Jones向量J = (J x , J y )(其中J x和J y定义是垂直于光线方向,并且同时具有振幅和相位)来定义偏振。然后通过2D的J向量回推建立3D的E向量并得到光线的方向余弦。

该方法用于定义光线的初始偏振,然后根据我们是在使用序列系统还是非序列系统,而有相对的设定与计算方法。

在序列系统中定义偏振

在System Explorer > Polarization 中我们可以定义光线的预设偏振状态: 
Click To Enlarge

如果一个分析功能计算时有考虑偏振,但是在设定中没有偏振相关定义选项,则该计算将使用此处的设定。但是,也有许多分析视窗本身允许直接定义偏振状态。这些是在Analyze选单中的“Polarization and Surface Physics”群组中的视窗:

这些分析工具会读取系统选项(System Explorer)中的偏振设定做为预设值,但是也允许使用这直接修改。例如,Polarization Ray Trace让您可以直接定义光线座标以及偏振状态:
 Click To Enlarge
 Click To Enlarge

在非序列系统中定义偏振

而非序列光源物件则是可以在属性对话框(Object Properties)的光源(Source)部分定义其偏振状态:

每个光源都可分别指定不同的偏振属性。

2:薄膜层

OpticStudio具有丰富的薄膜建模功能来支援偏振分析。可通过预定义的或使用者定义的材料资料库定义多层电介质薄膜和金属膜层。许多薄膜设计软体,例如The Essential Macleod、TFCalc和Film-Star,都支援直接将设计好的膜层以OpticStudio格式汇出。

膜层的定义可以是在电解质或金属基底上。膜层可由任意材料层组成,每个材料层都须使用复数折射率定义,也可以建立材料在不同波长的折射率色散关系。基底可为玻璃、金属或使用者自订材料。膜层可为均匀或厚度不均,以反应出制造状况,并且语法支援让使用者可以方便地建立重复的膜层堆叠回圈。

如果此膜层会定义在从空气到玻璃以极从玻璃到空气等不同情况,OpticStudio可自动将膜层定义顺序反向,从而可将相同的膜层施加在诸多表面上,无需定义“镜像”膜层。

膜层是定义在一个.dat副档名的档中。该文件位于膜层资料夹,该资料夹预设为My Documents\Zemax\Coatings。通过按一下“Setup”选单中的“Project Preference”可修改该资料夹。OpticStudio附带有名为coating.dat的档,其中包含范例资料。

注意:您不应该编辑coatings.dat,因为其由OpticStudio安装程式提供,并且将在您之后安装更新时被覆盖。 

务必将您自己的膜层资料储存为自己的.dat档,并通过系统选项(System Explorer) >档案(Files)部分载入它:

在膜层资料就位的情况下,OpticStudio能计算任何膜层随波长或角度变化的双向衰减、相位、延迟、反射率、透过率或吸收率等物理参数。

给序列式系统的表面加上膜层

再次打开范例档Sequential\Objectives\Double Gauss 28 degree field.zmx。此档案使用内建的coatings.dat 镀膜设定档。注意镜头数据编辑器中的“Coating”栏位:
Click To Enlarge
现在转到资料库选单,并从中选择“Coating Catalog”图示
Click To Enlarge
向下滚动以搜寻膜层AR:
 Click To Enlarge
Click To Enlarge
除非Absolute栏位标记是“非零”,否则膜层厚度的单位是用主波长(Primary Wavelength)波数定义。而在非零的情况下,膜层的厚度用µm表示,而与波长无关。因此膜层AR为MGF2材料的厚度达λ/4的层,该材料MGF2也是使先在coating.dat档中定义过的:

该列表提供复数折射率,定义为η = n + ik,其中n为一般折射率,而k为消光系数。由于材料MGF2定义为具有正值n和零值k,因此是纯电介质。但是材料ALUM:

具有小于1的折射率以及负消光系数,因此是金属(OpticStudio的规约是吸收介质的消光系数为负)。膜层可由任何数目的电介质和金属层制成,层厚度可以不变或呈锥形,并且可方便地定义膜层的重复回圈。

如果您没有膜层规格,OpticStudio支援数种理想膜层定义方式,可让您只指定反射率和透过率,并且也支援用表格定义膜层,跟理想膜层的差别在于透射率和反射率可能随入射角度和波长而变化,并且可为S和P偏振单独指定。

注意:有关膜层档语法的完整详细资讯,请参阅Help文件的“Polarization”章节。 

现在按一下“Analyze”选单中的“Coatings”…“Reflectance vs Angle”选单,查看该膜层在SK2 玻璃基底上的性能:
 Click To Enlarge
Click To Enlarge
相同功能表中的其它工具可让您查看透过率、双衰减、相位、延迟等。在表面1的Coating栏位上滑鼠选一下,然后按下空格并ENTER删除膜层,注意反射率vs.角度图的变化。

你可以直接在Coating栏位输入膜层名称,以将膜层施加至表面,或是透过镜头数据编辑器工具列中的“Add Coatings to All Surfaces”工具一次给系统中的所有表面加上膜层。
 Click To Enlarge

给非序列物件新增膜层
将膜层加上到至非序列物件只是稍微复杂一点。由于物件为实体而非一个表面,因此一个物件可能会有好几个表面,而能各自套用不同膜层。请打开范例文件Non-sequential\Ray splitting\Beam Splitter.zmx:
Click To Enlarge
按两下第二个稜鏡物件(物件3),以打开他们的属性对话框(Object Properties),并选择“Coat/Scatter”区块。可以看到该物件具有两个表面: “1, Splitter surface”,这是分光器表面(稜鏡的消光系数),而剩下的表面则统一由“0, Face0”所定义。

表面1涂覆有理想膜层I.5,光线能量的50%会穿透,而50%是反射,表面0则涂覆有I.95,可穿透95%并反射5%能量。

OpticStudio物件使用“表面(Face)”来定义和物件相关的各个光学区域,你可以在Help文件中找到相关定义。如果想知道Face在物件上的位置,您可在“Analyze”选单中使用NSC Object Viewer来查看各个物件。
Click To Enlarge
如果用滑鼠按一下物件的一个表面(Face),这个表面将用不同颜色显示,并在视窗的标题列中标识出他的编号以及名称(如果有)。
 Click To Enlarge

定义CAD 物件的表面
OpticStudio能汇入数种不同的CAD物件:STL、STEP、IGES和SAT格式的档,并且也可动态地用于SolidWorks™、AutoDesk Inventor™和Creo Parametric™(之前为Pro/Engineer)零件和总成。这些CAD档可能由数目巨大的NURBS曲面定义而成。一些CAD设计软体可建立包含许多小曲面构成的资料档案。例如,在CAD档中可以通过数百个小的表面来描述简单的圆柱体,但对于光学分析,这里面可能总共只有两个或三个不同的光学特性而已。因此我们需要的不是将光学性能分配给其中的每个表面,而是将把相关的小曲面(Surface)群组化成为单个表面(Face) ,代表这个CAD档中有相同光学性质的一个平滑表面。

CAD物件都支援“Surface Mode”可以快速指定小曲面的分配方式,你可以在物件属性对话框(Object Properties)中的CAD区块中找到相关设定,可如下将光学表面的分配简化:

· Surface Mode = Use single surface:顾名思义,所有的Surface都会被分配到Face 0。整个物件将只有一个Face(例如阳极氧化铝)。

· Surface Mode = Use angle of normal vector:对所有的Surface来说,如果两Surface沿着一条长度非零的曲线相接,并且两个Surface在这条曲线上各自的法向量之间的夹角小于使用者指定的角度,则此两Surface的Face编号会被设为相同。使用者指定的角度大小可由同一个设定视窗中的Face Angle栏位设定。这个角度的指定可以让使用者指定要把Surface群组切割到多细。如果Face Angle的值非常大(例如180),则所有的Surface的Face编号都会一样。Face Angles越大,产生的Face就越少。

· Surface Mode = Use all surfaces:所有的Surface都会被分配到同样的Face编号。

· Surface Mode = Use previously defined surfaces:保留原始汇入档的Face分配方式。有一些CAD档(例如由OpticStudio所建立的)会在档案内就带有Face编号的资讯,而这些资讯将会被直接使用。如果OpticStudio无法侦测Face编号的资料,则会回到“Use all surfaces”的模式。

· Surface Mode = Use single surface per object:CAD档中个别分离物件上的所有Surface都会被赋予一样的Face编号。此选项在CAD档中有多个物件,并且刚好每个物件的材质都要分开设定时非常有用。

Click To Enlarge

3:光线分裂

对于序列或非序列光线追迹,可以考虑偏振影响,也可以忽略偏振。如果使用偏振光线追迹,则会考虑所有表面的光能透射、反射和吸收情况,还会考虑光学介质的体吸收。

在纯非序列光线追迹中,还可以进一步考虑在物件表面上分裂光线。在这种情况下,则将不仅是考虑反射损耗,而且会产生新的光线,带走反射的能量。

由于准确的反射和透射计算需要偏振资讯,因此只有在执行偏振光线追迹时才允许光线分裂。
Click To Enlarge
你也可以关闭光线分裂,在这种情况下,在光线遇到折射面时会使中采用透射路径,除非光线发生全内反射。如果物件为镜面,当然始终会采用反射光程。

上述布局显示了光线分裂时的一些可能的光线路径。注意画面中其实只绘制了1条输入光线!在系统选项(System Explorer)的Non-sequential选单下定义的各种光线终止标准是光线分裂开启时进行有效计算的必要条件。建议将Minimum Relative Ray Intensity设定为相当高的值(约0.001),直到此模型能够正常运行,并且需要更多详细结果。
Click To Enlarge
OpticStudio还支援随机选择反射或折射路径而不是将光线分裂为两条并同时追迹。需要这个功能的话,可以勾选上图中所看到的“Simple Ray Splitting”。这个选项会在光线需要分裂时随机决定要走反射或是折射路径;然后把反射和透射的能量比例解释为采用该路径的相对机率。

4:光线散射

除了光学元件表面上的部分反射之外,光线也可能因为表面的微观粗糙度而发生散射。OpticStudio 支援许多从光学表面进行散射的详细模型,包括朗伯(用于非常粗糙的高散射性表面)、高斯(通常用于抛光良好的表面的散射建模)、ABg、K-相关等等。此外,OpticStudio 可采用简单ASCII 档案格式导入散射资料,并且旗舰版本包含已测量散射档的库。有关详细资讯,请参阅“资料库”选单中的“散射”组。
Click To Enlarge
尽管散射可用在序列光线追迹(参阅“属性对话框”对话方块的“散射”选单),但它在非序列光线追迹中最能发挥作用,其中光线可前往任何位置。散射功能适用于非序列物件的面,其方式薄膜层相同,这些功能位于“物件属性”选单的“膜层/散射”选单中。

打开Non-sequential\Scattering中名为ABg scattering surface.zmx的范例文件。该档在物件2上使用ABg散射模型,该模型通常用于已测量的散射资料:
Click To Enlarge
由于它基于已测量的资料,因此表面散射的能量总量由资料档案定义。其它散射模型,例如朗伯模型需要您告知OpticStudio有多少能量要使用对话方块上的“散射函数”参数散射,该对话方块将在选中需要它的散射模型时出现:

如果光线分裂关闭,则将散射或不散射光线,具体取决于“散射函数”参数的值(或同等已测量资料)以及OpticStudio为每次光线-物件交互生成的乱数。更新NSC三维布局图,并注意光线是散射还是不散射
Click To Enlarge
在设定对话方块上,选择“分裂光线”以及“散射光线”:
Click To Enlarge
光线现在将分裂为非散射光线,以及五条散射光线。

将该布局更新数次,并注意您始终会得到非散射光线,还有五条随机散射光线。散射光线数由“物件属性”的“膜层/散射”选单中的“光线数目”参数定义。

5:重点取样

模拟散射时,常常可能需要追迹巨量光线,才能让足够多的光线照射到相关物件(例如探测器)上。OpticStudio支援两种强大的方法来提高散射分析效率。

第一种方法是,根据散射分布散射光线,但仅在光线是往指定物件散射时才继续追迹光线。此方法可通过使用物件属性(Object Properties)对话框中的“Scatter To”区块中,定义Scatter To Method的选择为“Scatter To List”来达成。
Click To Enlarge
“Scatter To List”方法适用于广角散射(例如Lambertian散射),此时被散射光照射的相关物件会占据相对较大的立体缴(从散射面看)。

第二种方法是,始终向相关物件散射光线,然后归一化光线携带的能量,以代表实际向该方向散射光线的可能性。此方法被称为“重点取样(Importance Sampling)”。如果是散射角度小或被散射相关对象包含相对较小的角度(从散射面看),则Importance Sampling方法通常胜过散射路径模型。

打开Non-sequential\Scattering中名为Importance Sampling Demonstration.zmx的范例文件。由此直接显示使用重点取样的优势。光线始终会散射至所需物件,在这个范例中,光线始终散射向探测器(Detector),并且得到的讯噪比也会因此好得多。
 Click To Enlarge

6:体散射和萤光散射

体散射模型会让光线在通过实体物件传播的同时会随机散射。这种情况可能很少发生(例如在光学级玻璃中含有散射物杂质),也可能非常常见(例如在生物组织范例中散射)。OpticStudio包含数个体散射模型,包括Henyey-Greenstein和瑞利散射。

此外,光线可在体散射时改变波长,通常是变为更长的波长。首先请打开Non-sequential\Phosphors and Fluorescence\中名为Fluorescence Example.zmx的范例文件。该档使用两种波长:1(蓝色)和2(红色)。光源仅以蓝光辐射,并且该光线进入以一定角度和波长散射光线的介质。分光器的功能是让红光透射并反射蓝光:
Click To Enlarge
体散射属性在“Object Properties”对话方块的“Volume Physics”选单上定义。
Click To Enlarge
“波长飘移(Wavelength Shift)”设定用于定义在发生体散射事件期间的波长转换。语法为“in, out, prob”,其中“in”为输入波长编号,“out”为输出波长编号,“prob”为在波长中追迹光线时发生此漂移的相对机率。你可以定义多个转换,使用分号分隔。

例如,单输入波长(#1)将漂移至波长#2的概率为50%,漂移至波长#3的概率为40%,剩余10%的概率将保持在输入波长,那么波长飘移字串为

1 , 2, 50.0; 1, 3, 40.0; 1, 1, 10.0

此外您也可以打开Non-sequential\Phosphors and Fluorescence\中名为White LED Phosphor.zmx的范例文件。可以看到这是一个萤光粉模拟的范例。
Click To Enlarge
请打开物件3的Object Properties里面的Volume Physic区块,可以看到我们需要指定萤光粉的吸收、激发、辐射频谱。并且也需要给出米氏散射的资料,例如例子折射率、大小、密度。
Click To Enlarge
关于萤光粉模型,请参考知识库中的相关文章,有更多详细说明。

Zemax-偏振、膜层和散射相关推荐

  1. Ansys Zemax | 如何模拟部分反射和散射的表面

    这篇文章介绍了如何模拟一个部分反射的表面,该表面会根据指定的散射分布对一部分入射光能量进行散射.本文介绍的示例包含部分吸收以及部分镜面反射的情况.(联系我们获取文章附件) 介绍 使用 OpticStu ...

  2. ZEMAX | 如何使用米氏散射模型模拟环境中的散射现象

    ZEMAX | 如何使用米氏散射模型模拟环境中的散射现象 本文介绍了利用光学全息图降低单透镜像差的方法.在描述了表示全息图构造光束的两个 ZMX 文件之后,本文演示了如何在重现文件中设置 OFH.然后 ...

  3. Zemax学习笔记(3)- Zemax中的序列模式和非序列模式

    Zemax学习笔记(3)- Zemax中的序列模式和非序列模式 序列模式与非序列模式 序列模式 窗口浮动或者固定 主要分析 非序列模式 混合模式 光源建模 创建复杂的几何体 CAD 导入 布尔命令 光 ...

  4. Ansys Zemax | 使用OpticStudio进行闪光激光雷达系统建模(下)

    在消费类电子产品领域,工程师可利用激光雷达实现众多功能,如面部识别和3D映射等.尽管激光雷达系统的应用非常广泛而且截然不同,而"闪存激光雷达"解决方案适用于在使用固态光学元件的目标 ...

  5. ZEMAX 如何通过 K-相关分布模拟表面散射

    ZEMAX 如何通过 K-相关分布模拟表面散射 本文旨在介绍如何在OpticStudio中模拟K-相关分布散射模型,并用实例分析将该模型与Harvey-Shack (ABg) 散射分布模型进行了比较. ...

  6. 计算机屏幕偏振光原理,隐形却很重要 PC屏幕的那层膜

    [an error occurred while processing the directive] 提起PC屏幕(包括显示器和笔记本屏幕),我们都知道IPS(MVA)材质的可视角度更大.色域更高的显 ...

  7. ZEMAX | 量化眩光效应 (Veiling Glare)

    ZEMAX | 量化眩光效应 (Veiling Glare) "眩光"是一个用于成像系统设计领域的术语.从技术上讲,眩光是照射在成像系统的传感器平面从而导致系统性能下降的杂散光.虽 ...

  8. Ansys Zemax | 如何在序列模式下模拟分光棱镜

    概述 这篇文章介绍了: · 如何在序列模式下使用多重结构创建分光棱镜 · 如何在布局图以及分析/计算窗口中同时追迹透射和反射光线 · 在考虑偏振及镀膜的影响下如何计算透射和反射光线的总能量 (联系我们 ...

  9. ZEMAX | 室内照明案例分享2 —— 室内场景模拟

    摘要 本文介绍室内照明(天花板顶灯),在室内人眼所看到的情况的模拟示例. 上一篇文章中,我们创建了照亮房间的照明部分. 我们将从创建家具开始. 家具制作 使用Part Desginer功能创建房间家具 ...

最新文章

  1. 如何调试Android Native Framework
  2. 论计算机在教学中的作用论文,计算机在教学中的应用
  3. 视觉SLAM总结——SVO中关键知识点总结
  4. 用Windows Live Writer离线写博客
  5. java 图形处理库_java中处理图片的类库
  6. axios post请求
  7. python多线程url采集器 + github_python实现多线程采集的2个代码例子
  8. 用 Python 自动生成快闪文字视频
  9. Prescan(一):无人驾驶仿真软件简介
  10. ES 经纬度距离 php,php 根据两点的经纬度计算距离
  11. 【设计模式】简单工厂模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )
  12. 网站图片如何批量下载教程
  13. 电脑系统重装篇3:Windows 7 系统安装步骤(UltraISO)
  14. 4245. 【五校联考6day2】er
  15. xamp:在shell中运行mysql
  16. 关于Git的rebase操作与cherry-pick操作的建议
  17. 泊松分布 (Poisson-Disc)算法
  18. 关注李敖神州文化之旅
  19. 大数据在各个行业中的具体作用
  20. C语言《位段结构体、联合体》

热门文章

  1. AM5728调试经历(2)
  2. 引导魔女之力,征服星辰大海 主线篇: 重要事情说三遍: 推主线!推主线!!推主线!!! 简述: 1.本篇仅主线,涉及到的技巧全职业都可以参考; 2.考虑到萌新刚玩没有护卫者系统,故禁护
  3. elementUI Drawer 抽屉打开时表单自动聚焦问题解决
  4. 获取与设置checkbox选中状态
  5. 艾美捷人重组MEGACD40L蛋白(可溶性)实例展示
  6. 小米 VS 华为 - 抽象工厂模式
  7. 2023年中职网络安全竞赛服务远程控制任务解析
  8. 拼多多数据分析一二三面面经(HR面后综排挂)
  9. 阿里云服务器可以做什么?买来吃灰?
  10. linux升级gfortran版本,Ubuntu18.04使用配置及gfortran版本的切换