2022年2月22日

OpticStudio支持哪些散射模型

Category: Product News

这篇文章总结了OpticStudio中支持的所有表面和体散射模型。它描述了不同内置散射模型以及 DLL 散射模型如何使用双向散射分布函数 (BSDF),还提供了有关何时使用哪种散射模型的基本指南。

在任何光学系统中,光线可能会在表面边界(例如粗糙的表面)或在特定介质中(例如光和粒子间的相互作用)发生散射。这两种散射现象都可以在OpticStudio的非序列模式下建模仿真。

OpticStudio提供了多种模型来描述表面散射和体散射。本文会总结性的介绍这些散射模型。您可以在用户手册中的非序列章节中查看每种模型的详细介绍,您也可以在Zemax知识库中的Non Sequential Ray Tracing > Sources, Splitting and Scattering标签下查找相关技术文章。

表面散射模型

在OpticStudio中有许多散射模型,这包括OpticStudio内置的模型以及DLL用户自定义模型。这些模型通常使用双向散射分布函数(BSDF)来描述:

其中dLs表示散射辐射,dEi表示入射光辐照度,θ表示光线与表面法向量之间的极角,φ表示方位角,下标i和s分别表示入射光和散射光的方向。BSDF不仅可以用角度坐标θ和φ来定义,还可以通过向量x。向量x表示散射光线和反射光线在平面上的投影的差向量。

详细信息请参考Zemax用户手册的“Non-Sequential Component”一章。

内置的散射模型

模型

BSDF

描述

朗伯散射

BSDF = 1/π

散射光的发射向量指向投影平面上的各个地方的概率相同。散射强度和cos(θs)相关,散射强度与入射角无关。

高斯

BSDF(x) = A*exp[-|x|2/σ2]

散射分布在方向余弦空间中对称,σ决定了在投影平面上高斯分布的宽度,σ的最大值为5(如果大于5则分布接近于朗伯散射)。

ABg

BSDF(x) = A/[B + |x|g]

广泛应用于模拟粗糙表面造成的各向同性的随机散射模型,其中输入量A, B, g 在ASCII文件中提供 ( 保存在根目录下ABg_Data文件夹中 ),输入量的定义域为A >= 0, B >= 1.2E-12 ( 只有在g = 0时,B = 0才成立 )。

DLL 表面散射模型

模型

BSDF

描述

朗伯散射

BSDF = 1/π

与内置的朗伯散射模型相同,主要用来演示如何编写DLL

双高斯

高斯分布和朗伯散射分布的组合

用户可以指定朗伯分布和高斯分布的能量比,该模型建立了两个高斯分布,并且输入的宽度σ和能量比例相互独立,用户需检查能量比例系数总和小于1。

高斯XY

用概率分布代替BSDF进行定义:

P(p,q) = (4/(π*σp*σq))*exp[-((p/σp)2 + (q/σq)2)]

在投影平面上描述了一个高斯分布,其中P在入射平面中,q与入射平面垂直(除非在特殊情况下,坐标轴(p,q)和系统的坐标轴(x,y)并不相同),σp和σq应该大于0或小于1(否则使用朗伯散射模型即可),更多详情请参考知识库文章“How to Create a User-Defined Scattering Function

K-correlation

BSDF(x) = A*σ2*cos(θi)*cos(θs)/[1 + (B*|x|/λ)2](s/2)

模拟表面细微的粗糙程度引入的散射,与ABg模型的基础上额外引入了很小的角度偏移模拟大多数表面抛光时的情况,σ表示均方根表面粗糙度;其他输入量的定义请参考知识库文章“如何通过K-相关分布模拟表面散射

RI_BSDF

BSDF通过ASCII输入

该模型用来模拟通过实验测得的表面散射属性数据,而非使用算法进行拟合,输入数据的格式请参考知识库文章“BSDF Data Interchange File Format Specification”,有关应用OpticStudio的建模数据,请参考知识库文章“How to Use Tabular BSDF Data to Define the Surface Scattering Distribution

如果上述列出的所有分布无法模拟您需要的表面散射属性,您可以编写自己的DLL模型,有关自定义散射函数的相关信息请参考知识库文章“How to Create a User-Defined Scattering Function

体散射模型

OpticStudio中支持很多种体散射模型。同样包括内置的散射模型和用户自定义DLL模型。这些模型通常通过描述概率分布函数P来定义散射角。在所有案例中,散射的发生概率通过指数形式来定义:

p(x) = 1.0 - exp[-μ*x]

其中x为光线在介质中传播的距离,式中μ = 1/M并且其中的M为介质中散射的平均自由程。在发生体散射的过程中,光线的轨迹发生改变,并且散射光的波长也可以产生变化。用户可以利用这一点对荧光进行模拟(详情请参考知识库文章“How to Model Fluorescence Using Bulk Scattering”)。更多信息请参考Zemax用户手册的“Non-Sequential Component”一章。

内置散射模型

模型

概率分布

描述

角度

P(θ) = 1/2

散射的概率分布在任意角度下为常数,用户可以通过输入参数“Angle”来定义光线发生散射的最大角度。

DLL散射模型

模型

概率分布

描述

Bulk_samp_1

P(θ) = 1/2

和内置的角度散射模型相同;用来演示如何编写DLL。

Poly_bulk_scat

P(θ) =  ∑ciθi

使用多项式定义散射的角度分布,求和范围为i=0到i=12 (可以使用12阶多项式建模)。

Henyey-Greenstein_bulk

P(θ) = (1/4π)*(1 - g2)/[1 + g2 – 2g*cos(θ)]3/2

模拟由微小粒子造成的散射,可以有效模拟生物组织和太空尘埃云,输入量g的取值范围为1.0E-4(均匀的角度分布)到1.0(分布在θ=0时形成一个锐利的尖峰),更多详情请参考知识库文章“Using the Heney-Greenstein Dstribution to Model Bulk Scattering

瑞利散射

P(θ,λ) = 0.375*(1 + cos2θ)/λ4

模拟由微小粒子(粒子尺寸远小于波长)造成的散射,平均自由程正比于波长的四次方,更多详情请参考知识库文章“Bulk Scattering with the Rayleigh Model

米氏散射

概率分布为球面贝塞尔函数的和1

用于模拟粒子尺寸与波长的比为任意值的散射,主要用于描述大气散射,更多详情请参考知识库文章“如何使用米氏散射模型模拟环境中的散射现象

1:详情请参考文献:Craig F. Bohren and Donald R. Huffman, “Absorption and Scattering of Light by Particles”, John Wiley & Sons (1983).

如果上述列出的所有分布无法模拟您需要的体散射属性,您可以编写您自己的DLL模型,您可以在上述提供的DLL代码的基础上进行修改得到。

要试用 Zemax 功能,请在此处下载免费试用版

作者:
Sanjay Gangadhara
R&D Director
Zemax an Ansys Company