如何在存在全内反射 (TIR) 的情况下应用散射

在本文中,我们将展示如何利用虚拟表面来对具有全内反射 (TIR) 的物体进行建模,同时保持其他独特的表面特性,例如粗糙的表面结构。

作者 Erin Elliott , Alissa Wilczynski

附件下载

附件下载

简介
在OpticStudio中,全内反射 (TIR) 在其他表面属性(例如散射)之前应用于表面。在尝试对包含光学粗糙表面的光管或光纤进行建模时,这可能会导致问题。此类元件依赖于TIR,但由于表面粗糙度而无法实现完美的 TIR 行为。为了正确模拟此类系统,可以使用嵌入表面,以便在TIR之前应用散射函数。

问题

参考附件“ScatteringAndTIR_TIRAppliedBeforeScatterFunction.zar”。它包含一个直径为10毫米、长度为50毫米的PMMA圆柱体。镜头数据编辑器如下图所示。第1行包含一个以15°发射光线的源。第4行和第5行将检测器矩形放置在圆柱体表面的内部和外部。我们使用Cylinder Volume对象制作了一个光管。管道的直径为10毫米,长度为50毫米。

non sequential component editor

non sequential component editor

非连续着色模型显示入射在圆柱体底面上的光线。光线不会发生任何散射,并通过TIR反射回圆柱体。

nsc shaded model

请注意,“Color Rays By:”已设置为“Segment #”。这会在光线每次与对象交互时更改光线的颜色。请注意,还选中了“Scatter NSC Rays”。

color rays by segment

现在,假设圆柱体具有我们想要使用Scatter函数建模的粗糙或地面表面。因此,“Lambertian”散射函数被添加到对象属性中圆柱的侧面,如下所示:

cylinder volume

新的着色模型图如下所示。在散射函数之前应用TIR时,反射光线(以绿色显示)被散射,但光线全部散射到圆柱体中。实际上,在粗糙的表面上,光线也会从圆柱体中散射出来。

当光线与圆柱体相交时,OpticStudio中会进行两次计算。首先,软件根据斯涅尔定律计算镜面反射光线路径。接下来,应用散射函数使光线偏离镜面反射路径。结果是所有光线都在界面内部散射,光线不可能在管道外散射。

nsc shaded model now shows scattered rays

检测器上的输出——一个在圆柱体内部,一个在圆柱体外部——也表明在第一次反射时没有任何入射光线被散射出圆柱体。光线仅在随后的反弹后离开圆柱体,在第二个探测器上产生均匀的低水平照明,而不是我们期望从粗糙表面产生的亮点。

下面,左侧的检测器显示了来自光管内的集中光束。右侧的检测器显示漫射光束,表明光线仅在多次反弹后才离开光管。

detector viewer 1

解决方案

这个问题的解决方案是在圆柱体内部嵌入一个虚拟表面,并将散射函数应用于该表面。这迫使软件在TIR之前应用散射函数,因为光线在遇到计算斯涅尔定律的空气-玻璃界面之前先遇到散射表面。

在附加的示例“ScatteringAndTIR_EmbeddedScatterSurface.zar”中,Non-Sequential Component Editor的第3行是一个Cylinder Pipe对象,如下所示。对象没有定义材料,因此没有散射函数,斯涅尔定律不会在圆柱管表面产生光线偏差。在这种情况下,圆柱管的半径设置为4.98毫米,或比定义光管的圆柱体积小20微米。散射函数放置在圆柱管上,而不是放置在圆柱体本身上。

cylinder pipe

新的3D布局图如下所示。光线现在从圆柱体中散射出来并返回到圆柱体中。探测器内部和外部的探测器现在显示出类似的分布。

shaded model shows rays scattering into and out of the light pipe
detector viewer 1

KA-01340

这篇文章有帮助吗?
0 人中有 0 人觉得有帮助

评论

0 条评论

文章评论已关闭。