ZEMAX 如何通过 K-相关分布模拟表面散射
本文旨在介绍如何在OpticStudio中模拟K-相关分布散射模型,并用实例分析将该模型与Harvey-Shack (ABg) 散射分布模型进行了比较。(联系我们获取文章附件)
简介
表面微粗糙度引起的散射通常具有 K-相关模型 (K-correlation model) 的特征。1 该模型除了在小散射角区域有所不同外,与 Harvey-Shack (ABg) 模型十分相似。
在 OpticStudio 中,如果用户想要使用K-相关散射模型对表面散射分布进行建模,则需要输入大量的参数,并且这些参数都必须由用户测量。
本文将概述 K-相关散射模型背后的理论知识,并展示在OpticStudio中建模的实例。
K- 相关散射模型
K- 相关模型的双向散射分布函数 (BSDF) 由 Dittman2 提供:
其中s是有效的 RMS 表面粗糙度,s 是在高空间频率中 BSDF 的 log-log 斜率,β 则被定义为散射角 (ϑs) 的正弦减去镜面反射角/透射角的正弦,上面的公式中的 β对应 OpticStudio 中的向量x:
我们发现 K-相关散射分布模型与 Harvey-Shack (ABg) 散射模型非常相似。它们之间的主要区别在于 K-相关模型在小散射角度时会有偏移:
图1:K-相关与 Harvey-Shack 散射模型的比较。如 Dittman 所述,K-相关模型在小角度处会有偏移,这与在抛光表面上观察到的散射行为一致。
Dittman 指出这种偏移与在许多抛光表面上观察到的散射行为是一致的。
K-相关模型的 BSDF 不能进行解析积分,但在 OpticStudio 中可以运用蒙特卡罗功能来实现这种散射分布的模拟。如果我们忽略 BSDF 方程中的 cos(ϑs)项并使 ϑi = 0,全积分散射 (TIS) 的近似形式为:
正如我们所看到的,K- 相关散射模型需要输入大量的参数,我们将在下文中更详细地介绍这些参数。
注:如果用户获得的特定散射表面信息是实测的 BSDF 数据,而不是通过将实测表面粗糙度数据拟合到 K-相关模型得到参数时,我们强烈建议直接使用实测的 BSDF 数据进行表面散射分布建模。下一期我们将会详细介绍在 OpticStudio 中直接使用实测 BSDF 数据的具体步骤。
K-相关散射模型的参数输入
K-相关散射模型可以被6个参数所定义:
R = 表面透射/反射率
dn = 表面边缘折射率的变化
σ = 整体等效RMS表面粗糙度(µm)
λ = “测量”波长(μm)
B = 2πL,其中 L = 常规表面波长(mm)
s = 高空间频率中 BSDF 的 log-log 斜率
等效 RMS 表面粗糙度是在0到1/ λ的空间频率范围内计算的,其中选择非零值λ 是为了给全积分散射 (TIS) 提供一个有限的归一化因子。用表面粗糙度的实验测量来推导K相关散射的参数时,λ 的选择完全随机。λ 用于定义逆截止频率和计算测量数据的功率谱密度 (PSD),随后功率谱密度 (PSD) 将被转换成 BSDF。如果实验人员在分析测量的表面粗糙度数据时选择了λ这个值,则在其他波长下的等效表面粗糙度可根据以下公式计算:
如果某一特定表面的可用信息是实测的 BSDF 数据而不是表面粗糙度数据,我们强烈建议在 OpticStudio 中对表面散射分布建模时直接使用实测的 BSDF 数据。下一期我们将会详细介绍在 OpticStudio 中使用 BSDF 数据建模表面散射的步骤。
在 OpticStudio 中,表面透射/反射系数 (R)是由表面的膜层(或未设置膜层)决定的,而表面边界处的指数变化 (dn) 则是直接计算的。剩下四个 K-相关 BSDF 的参数 (σ, λ, B, s) 必须在 OpticStudio 中作为 K- 相关散射的参数输入:
DLL 需要一个额外的参数 (SFV1) 来为散射函数查看器 (SFV) 读取dn的值。虽然 dn 可用于 DLL 中直接计算光线在一个已知的物体上的散射情况,但由于 SFV 的设计为不绑定于任何特定的物体,所以 SFV 无法直接读取 dn 的值。所以为了保证SFV 功能中 BSDF 的精确计算,我们必须额外读取 dn 的值(这对OpticStudio模型中实际的散射光线分布没有影响)。相关的 DLL (K-CORRELATION.DLL) 包含在 OpticStudio 中,并位于相应的安装文件夹中 ({Zemax}\DLL\SurfaceScatter\)。
s的输入值对应参考波长(=“测量”波长),由 “Ref. Wave.”参数定义,而在K-相关BSDF方程中使用的λ值对应光线的波长。在光线波长下的等效 RMS 表面粗糙度由 l 和 s 的输入值使用上述公式(关联 σ(λ2) 和 σ(λ1) 的公式)计算。一旦确定了 σ 的换算值,则利用以下公式计算全积分散射:
当重点采样关闭时,用 DLL 计算的 TIS 值会被用来确定光线散射的能量;其余的入射能量则遵循镜面光线路径。为了确保 TIS 的计算在这种情况下能够正常运行,请将“散射比例 (Scatter Fraction)”设置为1,如上所示。
当重点采样启动时,光线散射的能量由“散射比例”参数确定。因此,这时用户应该用使用上述公式计算出的 TIS 值手动设置“散射比例”参数。
在任何一种情况下,如果输入参数使得 TIS > 1,则 DLL 将不运行散射,且所有的入射能量将遵循镜面光线路径。
简单示例
本示例考虑法向入射光镜面散射的情况,假设表面反射系数为0.95,在 632.8 nm的波长下,等效 RMS 表面粗糙度为3 nm。另外,我们假设表面的是由常规的表面波长0.8 mm所测量的,BSDF 的 log-log 斜率为3。该曲面的 K- 相关模型的输入参数如下所设置:
对于波长300 nm的光在这个表面上的散射,我们可以使用上文提供的公式来计算等效表面粗糙度:
该值可用于计算TIS:
因此,在这种情况下,大约1.6%的入射能量在反射时从表面散射,而其余的反射能量将遵循镜面反射光线的路径。
我们设计了简单的 OpticStudio 文件( Simple Example.ZMX) 来验证这个计算。该文件位于本文附件的 ZIP 文件夹中(联系我们获取文章附件)。在这个文件中,一个小探测器(物体3)被放置在轴上以测量镜面反射光线的能量,而大探测器(物体4)则用来测量散射光的能量。我们发现进入散射的能量大约是1.6%,与预期一致:
注意:使用单个检测器和光线过滤字符串 (filter strings) 也可以完成相同的计算。
比较 K- 相关散射和 ABg 散射模型
从 BSDF 方程可以看出,K- 相关散射模型与 ABg 模型非常相似。实际上,我们发现使用以下输入参数时,两个模型给出的结果几乎是一致的:
ϑi (= incident angle) = 0 degrees
K-correlation model: B = λ; S = 2
ABg model: A = [4π • R • dn2 • σ2] / [lin(2) • λ2]; B = 1; g = 2
在这种情况下,ABg模型的BSDF方程为:
K- 相关模型的 BSDF 方程与上述方程几乎是相同的,因为它只包含一个额外的cos(ϑs) 项。正是这个附加项的存在导致了 K- 相关 BSDF 中的小角度偏移,Dittman 指出这与许多在抛光表面上的观察到的现象是一致的。我们创建了 OpticStudio 文件 (K-correlation vs. ABg.ZMX) 来研究镜面在正入射时散射产生的辐射强度分布的结构。该文件在本文附件的 .ZIP 文件夹中提供。与前面的示例一样,该文件包含两个探测器:一个用于记录镜面能量,另一个用于记录散射强度图。在这种情况下,K- 相关模型的设置如下:
这些输入对应的 TIS 值为0.117(此时,光线波长=参考波长=0.55 mm)。我们再创建一个 ABg 散射模型来模拟这些 K- 相关参数,并使其计算出相同的 TIS值:
我们会得到两种散射模型 Y = 0度的辐射强度数据,并将结果绘制在Excel 图上:
正如预期,由于 BSDF 中 cos(ϑs) 项的存在,K- 相关模型结果的峰值更高。K-相关模型的辐射强度也更大,因为这是让两种模型间的 TIS 值(= 散射分布的积分)相等所必需的。用峰值振幅比(≈√2)和散射角余弦对 ABg 模型的结果进行缩放,得到与 K-相关模型完全一致的结果: