概述
这篇文章介绍了双向散射分布函数(Bi-Directional Scatter Distribution Function, BSDF)数据交换文件格式。在知识库文章“How to use Tabular BSDF Data to Define the Surface Scattering Distribution”中,我们会在非序列下的BSDF散射模型中依据本文介绍的文件格式,使用表格BSDF数据来定义散射分布。这篇文章小编会在下周和大家分享。
介绍
在分析系统辐照度及杂散光分析时,表面散射是需要考虑的非常重要的一种效应。在许多案例中,散射是非常重要的。在OpticStudio中内置有多种散射分布,这包括朗伯散射(Lambertian),高斯(Gaussian)及ABg模型。更多信息请查看帮助系统中The Setup > Non-Sequential Component Editor > Object Properties > Coat/Scatter标签。
有时候我们想要的散射模型不符合OpticStudio内置的散射模型中的任一种。如果想要散射分布可以用解析的方法表示并且该函数是可积的,则我们可以使用用户自定义表面散射模型来定义,具体内容可以参考我们上一周的文章“如何创建用户自定义散射模型”。然而在许多情况下,我们可以直接测量得到物体表面的散射分布并得到该表面的BSDF数据。例如使用Radian Vision System(RVS)公司生产的球面散射分析仪 (Imaging Sphere for Scatter Appearance, IS-SA) 测量的BSDF数据。在照明系统设计中,我们可以在OpticStudio非序列模式中直接输入测量得到的BSDF数据并生成对应的散射分布。本文将具体介绍BSDF数据交换文件的格式,该格式的设计目标是用来快速转换BSDF数据。
坐标系定义
首先我们需要定义数据的坐标系。这里一共使用四种重要的角度来描述光线在一个表面发生的散射。它们根据重要性排序如下:
样本旋转角 (Sample Rotation) (图示: SampleRotation)
入射角 (Angle of Incidence) (图示: AngleOfIncidence)
散射方位角 (Azimuth Scattering angle) (图示: ScatterAzimuth)
散射极角 (Radial Scatter angle) (图示: ScatterRadial)
四种角度的顺序是非常重要的:对于每个样本旋转角,您可以得到不同入射角下的数据;对于每个入射角,您可以得到不同方位角的数据,依此类推。
上图所示为描述散射数据的四个重要的BSDF角度。其中BRDF情况下,散射极角和散射方位角是相对于光线的镜面反射角进行定义的。因此在大多数反射情况下,该方法所需报告数据的数量有效降低。在BTDF情况下,散射极角和散射方位角则是相对于透射光的方向进行定义的。散射极角为零度时对应反射光线的方向,随着极角增大,散射光线向外发散。方位角为零度对应反射光线指向表面法向量的方向,随着方位角增大,散射光线绕反射光线方向逆时针旋转。
该图展示了一束反射光的散射情况。其中上图表示入射角为30度的光经过表面反射后的散射数据。下图为经过校准变换后的数据,反射光的光斑中心位于坐标轴中点。需要注意的是,散射数据经过了旋转。变换后的数据格式中,0°方位角方向与照度图的0°轴重合。
文件格式定义
BSDF数据交换文件实际上就是以 .BSDF为扩展名的文本文件。下表所示为文件中每个文本和数据行所对应的含义:
该表显示了BSDF数据交换文件的基本格式。改变其中的变量会影响枚举格式。有关该表的详细解释请见本文“格式注释”一节。以系统内置的示例文件 BrownBinyl.BSDF 为例,各部分功能注释如下:
格式注释
本节将根据上文给出的表格中的编号,对数据交换文件的格式详细介绍:
#. 任何以#号起始的行都将作为注释被忽略
1. 目前光源 (Source) 变量只支持一种情况:Measured
2. 对称 (Symmetry) 变量包含三种情况:PlaneSymmetrical, ASymmetrical, ASymmetrical4D
PlaneSymmetrical
测量数据根据辐照度的光轴旋转对称,因此只有180°方位角的数据包含在文件中。请在平面对称的各向同性样本中使用这一设置。
Asymmetrical
在测量数据中没有对称性,不包括样本旋转。360°方位角的数据都会包含在文件中。在各向同性样本中使用该设置(只对一个样本旋转方向)。
ASymmetrical4D
在测量数据中没有对称性,并且包括样本旋转。所有360°方位角的数据将包含在文件中。在个相同项样本中使用该设置(可对多个样本方向)。
3. 光谱 (SpectralContent) 变量包含两种情况:Monochrome, XYZ
我们使用的RVS公司的IS-SA测试仪并不能测量全部光谱,而只是三色数据。
Monochrome
在该设置下,在DataBegin和DataEnd之间只有一组数据。该组数据在DataBegin的前一行进行了标注(见上表中第14行)。
XYZ
在该设置下文件将包含三组枚举散射数据,每组数据对应三色数据中的一种。每组数据在DataBegin的前一行进行了标注(见上表中第14行)。
4. 散射种类 (ScatterType) 变量包含两种情况:BRDT, BTDF
BRDF
文件中包含的数据以BRDF为单位。坐标系中散射极角为0°时对应反射光的方向。
BTDF
文件中包含的数据以BTDF为单位。坐标系中散射极角为0°时对应透射光的方向。
5-12. 数据总数 (Value Totals)(第5,7,9,11行)
所有数据均为正整数(不允许有小数点)。
对于样本旋转和入射角度的设置没有上限。
对于方位角在PlaneSymmetry变量模式下的上限为180°,在Asymmetrical, ASymmetrycal4D 的上限为360°。
对于散射极角的上限为180°。
枚举变量 (Enumeration value) (第6,8,10,12行)
所有枚举变量均为正数。
枚举变量的数目必须与数据总数一致。
枚举变量不必等间距设置(请参考下一节中给出的示例文件,散射极角和散射方位角的枚举值都不是等间隔的)。然而每个数据行必须以最后一个枚举值为结尾(例如数据行不允许有多余的空格和Tab间隔符)。
16. 在每组庞大的数据前后都标有DataBegin和DataEnd。在每一块数据开始前都会给出对应入射角下的总体积分散射。该数据以 “TIS” 为起始。该数据表示比例值,如 .500表示50%光线发生散射,剩下的光线根据BRDF的定义发生散射或透射。
在TIS数据之后为散射数据表。该表中每个竖行表示对应散射极角下不同方位角的散射数据。散射数据的行排列为分组进行。首先,散射方位角对应每个入射角 (AngleOfIncidence),每个入射角数据包含不同方位角的数据行,该数据以行为单位形成一组数据。每个样本旋转角又包含不同的入射角,因此每个样本散射角下又包含多组不同的入射角数据组。
散射数据的枚举格式根据光谱 (SpectralContent) 变量不同而变化。如果光谱变量设为Monochrome,则数据格式如一小节中示例代码1和示例代码2所示。如果光谱变量设为XYZ,则数据中包含两个附加的DataBegin和DataEnd定义行,并且在每个定义行DataBegin前都包含附加的标记行。该数据格式如下一小节中示例代码3所示。
BSDF数据交换格式示例
示例代码1
这段代码展示了单色数据的格式。其中只包含一组连续的数据,以及一组DataBegin和DataEnd定义行。在该示例中,只包含一个样本方向的数据。如果需要设置多个样本旋转角,则我们需在最后一行数据之后且在DataEnd定义行之前插入额外的数据行。
Monochrome
#Data Generated by Radiant Zemax' 'Imaging Sphere'
#6/1/2007 11:30:46 AM
#Name: Ron
#Model #: BTDF of matte sample
Source Measured
Symmetry PlaneSymmetrical
SpectralContent Monochrome
ScatterType BRDF
SampleRotation 1
0
AngleOfIncidence 6
0 10 20 30 45 60
ScatterAzimuth 5
0 30 60 90 180
ScatterRadial 15
0 1 2 3.5 5 6.7 8 13.1 ...
Monochrome
DataBegin
TIS 0.72
3.689E+00 3.575E+00 2.907E+00 ...
3.689E+00 3.585E+00 3.108E+00 ...
3.689E+00 3.585E+00 3.044E+00 ...
3.689E+00 3.511E+00 3.143E+00 ...
3.689E+00 3.313E+00 2.905E+00 ...
TIS 0.70
3.605E+00 3.491E+00 2.778E+00 ...
3.605E+00 3.444E+00 2.968E+00 ...
3.605E+00 3.444E+00 2.874E+00 ...
3.605E+00 3.316E+00 2.955E+00 ...
3.605E+00 3.206E+00 2.825E+00 ...
TIS 0.61
3.154E+00 3.059E+00 2.455E+00 ...
3.154E+00 2.924E+00 2.472E+00 ...
3.154E+00 2.924E+00 2.374E+00 ...
3.154E+00 2.768E+00 2.454E+00 ...
3.154E+00 2.892E+00 2.615E+00 ...
TIS 0.49
2.508E+00 2.453E+00 2.040E+00 ...
2.508E+00 2.341E+00 2.014E+00 ...
2.508E+00 2.341E+00 1.925E+00 ...
2.508E+00 2.203E+00 1.976E+00 ...
2.508E+00 2.311E+00 2.121E+00 ...
TIS 0.27
1.391E+00 1.362E+00 1.186E+00 ...
1.391E+00 1.351E+00 1.228E+00 ...
1.391E+00 1.351E+00 1.203E+00 ...
1.391E+00 1.324E+00 1.233E+00 ...
1.391E+00 1.323E+00 1.255E+00 ...
TIS 0.10
5.262E-01 5.333E-01 5.332E-01 ...
5.262E-01 5.295E-01 5.196E-01 ...
5.262E-01 5.295E-01 4.988E-01 ...
5.262E-01 5.122E-01 4.955E-01 ...
5.262E-01 5.070E-01 4.962E-01 ...
DataEnd
向下滑动浏览全部示例代码
示例代码2
这段代码同样展示了单色数据的格式。其中只包含一组连续的数据,以及一组DataBegin和DataEnd定义行。其中代码间的红色标注介绍了散射数据中的散射极角,方位角以及入射角对应的格式(其中每组数据包含15列,本例中只展示其中的3列)。本例中的散射数据只包含一个样本旋转方向。如果包含多个样本旋转方向,则我们需在最后一组数据的DataEnd定义行之后插入新DataBegin和DataEnd定义行。
#Data Generated by Radiant Imaging's 'Imaging Sphere'
#6/1/2007 11:30:46 AM
#Name: Ron
#Model #: BTDF of matte sample
Source Measured
Symmetry PlaneSymmetrical
SpectralContent Monochrome
ScatterType BRDF
SampleRotation 1
0
AngleOfIncidence 6
0 10 20 30 45 60
ScatterAzimuth 5
0 30 60 90 180
ScatterRadial 15
0 1 2 3.5 5 6.7 8 13.1 ...
Monochrome
DataBegin Rad 1 Rad 2 ...
TIS 0.72
3.689E+00 Az 0 3.575E+00 2.907E+00 ...
3.689E+00 Az 30 3.585E+00 3.108E+00 ...
3.689E+00 . 3.585E+00 3.044E+00 ... Inc 0
3.689E+00 . 3.511E+00 3.143E+00 ...
3.689E+00 Az 180 3.313E+00 2.905E+00 ...
TIS 0.70
3.605E+00 3.491E+00 2.778E+00 ...
3.605E+00 3.444E+00 2.968E+00 ...
3.605E+00 3.444E+00 2.874E+00 ... Inc 10
3.605E+00 3.316E+00 2.955E+00 ...
3.605E+00 3.206E+00 2.825E+00 ...
TIS 0.61
3.154E+00 3.059E+00 2.455E+00 ...
3.154E+00 2.924E+00 2.472E+00 ...
3.154E+00 2.924E+00 2.374E+00 ... .
3.154E+00 2.768E+00 2.454E+00 ...
3.154E+00 2.892E+00 2.615E+00 ...
TIS 0.49
2.508E+00 2.453E+00 2.040E+00 ...
2.508E+00 2.341E+00 2.014E+00 ...
2.508E+00 2.341E+00 1.925E+00 ... .
2.508E+00 2.203E+00 1.976E+00 ...
2.508E+00 2.311E+00 2.121E+00 ...
TIS 0.27
1.391E+00 1.362E+00 1.186E+00 ...
1.391E+00 1.351E+00 1.228E+00 ...
1.391E+00 1.351E+00 1.203E+00 ... .
1.391E+00 1.324E+00 1.233E+00 ...
1.391E+00 1.323E+00 1.255E+00 ...
TIS 0.10
5.262E-01 5.333E-01 5.332E-01 ...
5.262E-01 5.295E-01 5.196E-01 ...
5.262E-01 5.295E-01 4.988E-01 ... Inc 60
5.262E-01 5.122E-01 4.955E-01 ...
5.262E-01 5.070E-01 4.962E-01 ...
DataEnd
向下滑动浏览全部示例代码
示例代码3
多色 (XYZ) 数据的格式示例。每个单独的波长拥有分立的DataBegin和DataEnd定义行。如果有多个样本旋转方向,则数据将添加在每个波长组最后一行数据后,且在DataEnd定义行之前。
#Data Generated by Radiant Imaging's 'Imaging Sphere'
#6/1/2007 11:30:46 AM
#Name: Ron
#Model #: BTDF of matte sample
Source Measured
Symmetry PlaneSymmetrical
SpectralContent XYZ
ScatterType BRDF
SampleRotation 1
0
AngleOfIncidence 6
0 10 20 30 45 60
ScatterAzimuth 5
0 30 60 90 180
ScatterRadial 15
0 1 2 3.5 5 6.7 8 13.1 ...
TristimulusX
DataBegin
TIS 0.72
3.689E+00 3.575E+00 2.907E+00 ...
3.689E+00 3.585E+00 3.108E+00 ...
3.689E+00 3.585E+00 3.044E+00 ...
3.689E+00 3.511E+00 3.143E+00 ...
3.689E+00 3.313E+00 2.905E+00 ...
TIS 0.70
3.605E+00 3.491E+00 2.778E+00 ...
3.605E+00 3.444E+00 2.968E+00 ...
3.605E+00 3.444E+00 2.874E+00 ...
3.605E+00 3.316E+00 2.955E+00 ...
3.605E+00 3.206E+00 2.825E+00 ...
TIS 0.61
3.154E+00 3.059E+00 2.455E+00 ...
3.154E+00 2.924E+00 2.472E+00 ...
3.154E+00 2.924E+00 2.374E+00 ...
3.154E+00 2.768E+00 2.454E+00 ...
3.154E+00 2.892E+00 2.615E+00 ...
TIS 0.49
2.508E+00 2.453E+00 2.040E+00 ...
2.508E+00 2.341E+00 2.014E+00 ...
2.508E+00 2.341E+00 1.925E+00 ...
2.508E+00 2.203E+00 1.976E+00 ...
2.508E+00 2.311E+00 2.121E+00 ...
TIS 0.27
1.391E+00 1.362E+00 1.186E+00 ...
1.391E+00 1.351E+00 1.228E+00 ...
1.391E+00 1.351E+00 1.203E+00 ...
1.391E+00 1.324E+00 1.233E+00 ...
1.391E+00 1.323E+00 1.255E+00 ...
TIS 0.10
5.262E-01 5.333E-01 5.332E-01 ...
5.262E-01 5.295E-01 5.196E-01 ...
5.262E-01 5.295E-01 4.988E-01 ...
5.262E-01 5.122E-01 4.955E-01 ...
5.262E-01 5.070E-01 4.962E-01 ...
DataEnd
TristimulusY
DataBegin
TIS 0.72
3.689E+00 3.575E+00 2.907E+00 ...
3.689E+00 3.585E+00 3.108E+00 ...
3.689E+00 3.585E+00 3.044E+00 ...
3.689E+00 3.511E+00 3.143E+00 ...
向下滑动浏览全部示例代码
小结
BSDF数据交换文件格式是由Zemax和RVS公司共同开发的,该格式提供了一个简单快捷的方式将BSDF数据输入到OpticStudio中。输入到OpticStudio中的数据将用于在非序列模式下描述任意物体表面的表面散射分布。