如何使用表格BSDF数据定义表面散射分布

概述

在上一周的文章“BSDF数据交换文件的格式规定”中,我们讨论了BSDF数据的编写格式。本周小编要和大家介绍的是如何使用测量得到的BSDF数据定义一个表面的散射分布。本文中我们会演示如何使用Radian Vision System(RVS)公司生产的球面散射分析仪 (Imaging Sphere for Scatter Appearance, IS-SA) 测量的BSDF数据,在OpticStudio非序列模式下对任意物体的表面定义相应的表面散射属性。OpticStudio内置了BSDF示例文件,本文还提供了高角度分辨率的BSDF示例文件用作对比,请从以下链接下载:

https://customers.zemax.com/getmedia/0e97d006-c4c8-4533-9cdd-41af04ec7ea9/BrownVinyl_HighRes


介绍

OpticStudio中建立的表面散射模型支持使用表格BSDF数据文件进行定义。数据文件保存为txt格式。该数据文件的格式必须严格遵守“BSDF数据交换文件的格式规定”,请在使用BSDF散射模型前详细阅读这篇文章。

该散射模型位于物体属性 (Object Properties) 对话框中“镀膜/散射 (Coat/Scatter)”选项卡下的散射栏中。在选择散射模型 (Scatter Model) 为BSDF后,在反射 (Reflect) 或透射 (Transmit) 标签下您可以找到全部BSDF数据文件。需要注意的是,该文件的扩展名必须为 .BSDF,并且保存在Zemax根目录下的ScatterData文件夹下。其中文件名最多为60个字符(包括后缀)。

OpticStudio通过对输入的BSDF测试数据进行积分得到散射光线的方向余弦。其中,积分的计算方法以及积分和散射光线方向向量的关系与技术文章“如何创建用户自定义散射函数”中所描述的相同。由于BSDF数据以表格的形式给出而不是函数的形式,因此本例中使用数值积分而非解析积分。

在所有情况下,积分运算只在文件夹一开始加载至OpticStudio时计算一次。随后,计算数据将保存在内存中,并可以在任何光线追迹计算中使用。在积分数据存储在内存中以后,调用BSDF数据进行散射光线追迹的计算时间与OpticStudio内置的其他散射模型的计算时间基本相同。因此,我们可以在设计中使用多个输入文件在不同表面上定义不同的散射分布,并且计算时间不会显著增加。然而,目前存储在内存中的不同数据文件的数量最多为200个。如果一个设计使用了超过两百个不同的散射分布文件,则超出200限制范围的文件将不会产生散射分布;光线只会在这些表面发生简单的镜面反射。如果您需要增加文件上限数量,请联系Zemax技术支持。

当使用该模型模拟测量得到的完整的BSDF数据时,请确保“散射函数 (Scatter Fraction)”设置为1。

“散射函数”为1表示总是使用BSDF散射属性,这是因为通常情况下BSDF数据同时包含了反射光和散射光的信息。散射函数在0到1之间时表示一定百分比的光线会不考虑BSDF性质只发生反射。

然后OpticStudio将根据总散射积分 (Total Integrated Scatter, TIS) 精确计算发生散射的光的比例,该数据直接从输入文件中获取(该数据与入射光的入射角相关,详情请参考“BSDF数据交换文件的格式规定”)。对于其他散射模型,发生散射的光线的比例则由参数“光线数 (Numbers Of Rays)”确定。不发生散射的光则假设在该表面损失,例如表面吸收。因此,所有输入光线都会发生散射,但是散射光线的能量会根据对应的TIS进行缩放(对于不同入射角的输入光其TIS不同)。

最后,该模型还支持重要性采样;OpticStudio内置了一个非常好的示例文件Tabular BSDF scattering surface with Importance Sampling.ZMX,该文件位于Zemax根目下的Samples > Non-sequential > Scattering文件夹中。当使用重要性采样时,系统将再次从输入数据文件中读取TIS,用于对射向目标物体的光能量进行归一化;对于一给定散射光所使用的TIS,它由入射光的入射角决定的。


BSDF模型的特点

在使用该模型时,我们需要特别注意以下几点:

1、RVS公司的文件格式支持在样本的不同旋转角度下进行测量。对于具有各向异性散射属性的表面需要特别注意。旋转角度的范围为0到360度之间,对应角度表示绕X+轴,逆时针方向的旋转角度。当前情况下,模型支持50个不同的样本旋转角度。如果您需要增加此上限数量上限,请联系Zemax技术支持。

如果光学系统中模型表面的旋转方向与测来方向不一致,则用户可以在输入该角度 “Angle” 参数栏中输入一非零角度值:

2、在BSDF文件中,模型入射角的上限数量为100个,方位角的上限数量为1000个,极角的上限数量为1000个。如果您需要增加这三个数量上限,请联系Zemax技术支持。

3、RVS文件格式支持两种SpectralContent输入:Monochrome和XYZ (三色) 两种模式。然而在OpticStudio中目前支持单色散射计算。对于三色散射文件,您需要将其拆分为三个单独的单色散射分布。如果您直接导入三色文件,OpticStudio会自动选择第二个颜色进行计算。

4、RVS文件格式支持两种散射类型 (ScatterType):BRDF和BTDF。然而,该数据类型在模型中并不考虑;散射模型为反射或透射是由选择文件时,分别在“反射 (Reflect)”和“透射 (Transmit)”两种类型下选择文件决定的:

因此,BSDF散射模型可以同时设置为透射和反射,并且两种方向下的散射分布可以各不相同。每个方向的总散射能量是由两种方向的相对TIS和表面镀膜共同决定。

最后,需要特别注意的是不同样本旋转角度下的BSDF或TIS数值是通过插值计算得到的,这是用来保证OpticStudio中不同旋转角之间的结果更佳平滑。在任意样本旋转角下,

将散射角与算法中产生的随机数相联系也是通过插值得到的,详细信息请参考“如何创建用户自定义散射函数”。

由于在散射角对应到随机数时使用了插值计算,因此散射角度可能不在输入的方位角和极角范围内。然而计算该对应关系需要使用的分组完整数据只是导入的输入文件中离散的入射角、方位角和极角。BSDF模型中会选择最接近的角度数值来计算散射角,其中在选择角度时并不会进行插值计算。因此,在选择这种模型时您需要注意输入的数据有足够的角度分辨率(尤其是入射角、方位角和极角)来描述不同重要性的BSDF数据。


应用实例

这一小节将为大家演示如何使用由RVS公司生产的IS-SA仪器测量得到实际BSDF数据。该数据来自于汽车仪表盘的塑料材料,名为Brown Vinyl。该这种材料的BSDF数据保存在BrownVinyl.BSDF文本文件中,该文件位于Zemax根目录下的ScatterData文件夹中。该文件为单色BSDF文件,包含13个入射角,19个方位角和11个极角:

#Data Generated by Radiant Imaging's 'Imaging Sphere'
#3/11/2008 9:37:42 AM
Source  Measured
Symmetry  PlaneSymmetrical
SpectralContent  Monochrome
ScatterType  BRDF
SampleRotation  1
0
AngleOfIncidence  13
15    20    25    30    35    40    45    50    ...
ScatterAzimuth 19
0    10    20    30    40    50    60    70    ...
ScatterRadial 11
0   5    10    15    20    30    40    50    ....
Monochrome
DataBegin
TIS 0.134506
6.375E-02    6.180E-02    5.879E-02    5.529E-02 ...
6.375E-02    6.199E-02    5.886E-02    5.563E-02 ...
6.375E-02    6.215E-02    5.940E-02    5.591E-02 ...
6.375E-02    6.217E-02    5.975E-02    5.624E-02 ...
6.375E-02    6.246E-02    6.003E-02    5.674E-02 ...
6.375E-02    6.255E-02    6.036E-02    5.707E-02 ...
6.375E-02    6.264E-02    6.070E-02    5.720E-02 ...
6.375E-02    6.303E-02    6.078E-02    5.772E-02 ...
6.375E-02    6.314E-02    6.126E-02    5.895E-02 ...
6.375E-02    6.302E-02    6.136E-02    5.852E-02 ...
6.375E-02    6.343E-02    6.182E-02    5.889E-02 ...
6.375E-02    6.363E-02    6.182E-02    5.916E-02 ...
6.375E-02    6.366E-02    6.210E-02    5.947E-02 ...
6.375E-02    6.371E-02    6.210E-02    5.975E-02 ...
6.375E-02    6.372E-02    6.238E-02    6.003E-02 ...
6.375E-02    6.390E-02    6.248E-02    6.028E-02 ...
6.375E-02    6.404E-02    6.289E-02    6.061E-02 ...
6.375E-02    6.410E-02    6.277E-02    6.124E-02 ...
6.375E-02    6.406E-02    6.266E-02    6.103E-02 ...
TIS 0.1321704
6.501E-02    6.262E-02    5.909E-02    5.513E-02 ...
6.501E-02    6.299E-02    5.950E-02    5.554E-02 ...

在示例文件中,我们使用这份数据定义非序列下矩形物体的散射分布:

需要注意的是散射函数设为1并且每条入射光线分裂为5根散射光线(光线数量为5)。

系统中单光线光源 (Source Ray) 物体用来向矩形物体发射入射角为30度的光线,然后一个矩形探测器放在矩形物体之前用来查看反射光的散射情况:

矩形探测器旋转了180度面向矩形物体,并且探测器的“仅在前 (Front Only)”参数设为1,因此探测器上只记录反射光线。该系统设置保存在保存在Zemax根目录下Samples > Non-sequential > Scattering文件夹中,其文件名为Tabular BSDF scattering surface.zmx。

当进行一百万根光线追迹后,探测器上的非相干辐照度分布以及辐射强度分布如下图所示:

可以看到探测器上的总能量为0.1282W。这一结果和实际结果非常接近;在本例中,总能量功率为镜面反射光线和30度入射角的散射光线的总和。对于没有镀膜的镜面(OpticStudio默认为一层厚厚的铝膜,详细信息请阅读文章“How is a MIRROR Without a Coating Handled?”)其反射效率为94.555%。您可以通过运行一次不考虑散射的光线追迹来进行简单的验证。在Brown Vinyl数据文件中,TIS在入射角为30度时为0.1371577。两数值的乘积为0.94555*0.1371577=0.1297。这一数值与探测器上的数值相差不超过1%。增加探测器的像素数量以提高对散射分布边缘能量的获取可能会进一步减少这一偏差。

我们可以从辐射强度分布的边缘处看到一些串扰,例如辐射强度分布图下方的“阶梯楼梯”结构。这是由于输入数据的10度方位角和极角分辨率所引入的噪声干扰导致的。如果想要消除这些影响,则需要增加输入数据的叫分辨率。例如使用2度方位角和极角分辨率,其非相干辐照度分布以及辐射强度分布如下图所示:

我们可以看到辐射强度分布的变化分辨率更高且更加均匀。同时由于BSDF数据允许非等间隔的角度设置,因此我们可以只对串扰产生的区域增加角度数据的分辨率。这可以在使文件大小不增加太多的情况下提供高精度的光线追迹击结果。高角分辨率的BSDF文件请从前文提供的链接下载。


小结

本文中介绍了如何在OpticStudio的非序列模式下使用BSDF表格数据定义表面散射属性,数据通过txt文本文件输入。该散射模型可以在OpticStudio建模中使用测量得到的BSDF数据。