How to use multiple ABg profiles to define an object's surface scatter property

In this article, we will write an ABGF file to generate a unique scatter profile on a non-sequential object. ABFG file types allow users to sum up to twenty ABg profiles in order to more accurately model the scattering distribution they are studying. This article will provide some explanation on ABg files and will work through an example and some applications.

Authored By John Stauder, Space Dynamics Laboratory (


A scatter model called “ABg File” is available on the Coat/Scatter tab of the Object Properties dialog. This easy-to-use feature can average or sum up to twenty ABg profiles for use in a single non-sequential ray trace. Furthermore, the scatter model can be used with and without importance sampling. This article describes the model’s usage and provides a real world example.

The "ABg File" scatter model

To use the ABg File scatter model, create an ASCII file with an ABGF file extension (e.g. ABgFile.ABGF) and place it in the “ABg_Data” directory. Information on creating a file with a unique extension can be found in the following forum post: "How do I save text files without a .txt extension?"

The data entry of the file has the following format:

No_of_ABgs Weights_Are_Absolute<optional>
ABg_Name_1 Weight
ABg_Name_2 Weight
ABg_Name_3 Weight

ABg_Name_N Weight

The first row contains two parameters; the number of ABg profiles to consider (20 max), and an optional flag to tell OpticStudio whether the ABg power contribution will be a weighted average or an absolute summation. If the flag is omitted or is zero, a weighted average is used. A non-zero value tells OpticStudio to sum the profile contribution.

The remaining rows (up to N = 20) consist of the ABg profiles to consider, along with their weight. The profiles must be defined in an ABg data file prior to the ray trace. The default file is "ABG_DATA.DAT;" however, it is highly recommended that the user create their own DAT file to add new ABg data. If the original "ABG_DATA.DAT" file is edited, it will be overwritten when an OpticStudio update is downloaded. 

Once the ABg profiles and ABGF file are defined, simply select ABg File from the Scatter Model drop-down list on the Coat/Scatter tab. Next, choose the desired ABGF file from the Reflect and/or Transmit drop-down list. This will be demonstrated in the following example.

An example to model particulate contamination by summing two ABg profiles

There are cases where measured or simulated bi-directional scatter distribution function (BSDF) data is modeled very well using a summation of two ABg profiles. A practical application is the BSDF of particulate contamination on an optical surface. The BSDF for Level 300 contamination at 633 nm is shown by the blue curve in the figure below. This data was generated using a Mie model with the Mil-Std 1246 particle distribution.

The data cannot be fitted adequately with a single ABg profile. However, by summing profiles “ABg 1” and “ABg 2” together, the BSDF data is modeled effectively. This is represented by the black curve on the figure below.

The following steps will sum the contribution of two ABg models in OpticStudio to produce the “ABg Summation” BSDF.

Add the following ABg profiles, named “MILSTD_ABG1” and “MILSTD_ABG2," to the currently loaded ABg data file (e.g. "ABG_DATA.DAT"). We are using the built-in DAT file for ease. Remember, it is highly encouraged that the user create their own DAT file for this purpose! 

WV 0.000000000E+000
DT 0 0.000000000E+000 1.800000000E-006 7.000000000E-006 2.500000000E+000
WV 0.000000000E+000
DT 0 0.000000000E+000 7.000000000E-005 1.000000000E+000 1.000000000E+000

Once completed, create the ABGF file “MilStd1246.ABGF” as shown below. The two entries of the first row tell OpticStudio to create a scatter function which sums together two ABg profiles. The remaining rows list the names of the profiles defined in the ABg data file, along with their weighting factor. The names in the ABGF file must use upper case letters, regardless of the capitalization in the ABg data file. Find more information in the OpticStudio Help File "The Setup Tab...Editors Group (Setup Tab)...Non-sequential Component Editor...Non-sequential Overview...Scattering (non-sequential overview)...ABg File Scattering."

Now that the necessary files are up-to-date, we can import the profile into OpticStudio. Navigate to Object Properties...Coat/Scatter. For "Scatter Model:", choose "ABg File" and for "Reflect:" choose the ABGF file we just created. 

Now that the scatter property of the object is defined as an ABg File, perform a ray trace like you would do for any other scatter model. 

We can visualize the newly-applied scatter model with a mirror illuminated with a beam of collimated light. This is represented in the following image. 

The mirror, shown in red, is assigned the ABg File “MilStd1246.ABGF” scatter model. Importance sampling is used to scatter incident rays towards the detector, which is rotated 45 degrees from the scatter surface. The source rays are shown in blue, and the scattered rays are shown in green. The scattered rays are being launched towards the detector (shown in black). 

In the detector viewer below, the irradiance plot corresponding to the "MILSTD_ABG1" provile is shown. 

The irradiance profile for "MILSTD_ABG2" is shown in the following detector viewer:

Each provile was generated using separate ABg model ray traces. Running a ray trace with the summed profile produces the following output:

The detector power of the ABg File ray trace is 3.00E-9 W, which is in good agreement with the total of the individual traces (i.e. 3.03E-9 W).  Note that in all three ray traces, the total rays reaching the detector are about the same (i.e. ~5,700), which indicates that the scattered rays are distributed amongst the profiles when the ABg File scatter model is used. This ensures that the ray tracing time doesn’t increase with the number of profiles being used.

Other applications and features

The above example utilized two unique ABg profiles to model the scatter characteristics of a single BSDF representing particulate contamination on an optical element. Scatter from surface roughness could also be included by adding another ABg model to the summation.

The ABg file is very flexible in that it can also be used to average up to twenty ABg profiles, each having a unique weight. Examples where this could be used are when several BSDF measurements are made on an optic at different spatial locations, or on multiple optics made to the same surface roughness specification. In these cases, an ABg profile is fit to each BSDF measurement. The ABg File model can then be used to represent the average of these measures, each being weighted by the confidence in the respective data.

The OpticStudio Scatter Function Viewer and Scatter Polar Plot can be used to visualize the ABg File scatter model. The plots below use these two tools to display the ABg File “MilStd1246.ABGF." The Scatter Function Viewer confirms that our data is identical to the “ABg Summation”.


An object’s scatter property can be set to the ABg File model in ZPL by the keyword SETNSCPROPERTY with a code of “7” and a value of “6."  Use an additional SETNSCPROPERTY keyword with a code of 33 or 34 to assign the model to a reflective or transmissive surface, respectively. When using code 33 or 34, the value entry of the keyword is the ABGF filename in quotes. The following ZPL statements will assign the ABg File model “MilStd1246.ABGF” to Object 3 Face 0 to produce the same settings we just implemented by hand. 

SETNSCPROPERTY 1, 3, 7, 0, 6
SETNSCPROPERTY 1, 3, 33, 0, "MilStd1246.ABGF"


Was this article helpful?
1 out of 1 found this helpful



Article is closed for comments.