- Home
- User Articles
- BSDF Data Interchange File Format Specification
- Home
- Programming ZEMAX
- User Defined Features
- BSDF Data Interchange File Format Specification
- Home
- Non Sequential Ray Tracing
- Sources, Splitting and Scattering
- BSDF Data Interchange File Format Specification
BSDF Data Interchange File Format Specification
- By Ron Rykowski
- Published 2 May 2008
- User Articles , User Defined Features , Sources, Splitting and Scattering
-
Rating:




Definition of File Format
| Line # | Description | Values |
| # | <comments> | <Any line that starts with # is ignored as a comment> |
| 1 | Source | Measured |
| 2 | Symmetry | PlaneSymmetrical Asymmetrical Asymmetrical4D |
| 3 | SpectralContent | Monochrome XYZ |
| 4 | ScatterType | BRDF BTDF |
| 5 | SampleRotation | <number of different sample rotations> |
| 6 | <enum> | <enumeration of sample rotations> |
| 7 | AngleOfIncidence | <number of different angles of incidence> |
| 8 | <enum> | <enumeration of angles of incidence> |
| 9 | ScatterAzimuth | <number of different azimuth angles> |
| 10 | <enum> | <enumeration of azimuth angles> |
| 11 | ScatterRadial | <number of different radial angles> |
| 12 | <enum> | <enumeration of radial angles> |
| 13 | <empty line> | |
| 14 | <SpectralContent indicator> | Monochrome Tristimulus<XYZ> |
| 15 | DataBegin | <Begin Data> |
| 16+ | <enum> | <enumeration of scatter data for all angles> |
| 17 | DataEnd | <End Data> |
Table 1. Description of lines in the BSDF Data Interchange format. Changing some variable settings can affect enumeration formatting. Refer to the Formatting Notes for specific details.
Formatting Notes
Line Notes
#. Any line that starts with the # symbol is ignored as a
comment line.
1. There is currently only one option for the Source variable:
Measured
2. There are three options for the Symmetry variable:
PlaneSymmetrical, ASymmetrical, ASymmetrical4D
PlaneSymmetrical The measured data is symmetrical about
the illumination axis of the measurement,
so only 180° degrees of Azimuth data are
reported. Use this setting for isotropic
samples with plane symmetry.
ASymmetrical There is no symmetry in the measured
data; no sample rotations. All 360° of
Azimuth data is reported. Use this for
isotropic samples (only one sample
rotation).
Asymmetrical4D There is no symmetry in the measured
data; includes sample rotations. All 360°
of Azimuth data is reported. Use this for
anisotropic samples (multiple sample
rotations).
3. There are two options for the SpectralContent variable:
Monochrome, XYZ
Currently, Radiant Imaging’s IS-SA does not measure full spectral
content, but only Tristimulus data. Monochrome is the same as
Tristimulus Y (photopic).
Monochrome There will only be one group of
enumerated data between DataBegin
and DataEnd. This group is labeled by
an added line above the DataBegin line
(line 14 in Table 1).
XYZ There will be three groups of
enumerated scatter data, one for each
Tristimulus value. Each group is labeled
by an added line above the DataBegin line
(line 14 in Table 1).
4. There are two options for the ScatterType variable:
BRDF, BTDF
BRDF Reported data is in BRDF units. The
coordinate system is defined so that
Radial 0° corresponds to the angle of
specular reflection.
BTDF Reported data is in BTDF units. The
coordinate system is defined so that
Radial 0° corresponds to the angle of
direct transmission.
5-12. Value totals (lines 5, 7, 9, 11):
All value totals are expressed as positive integers (no decimal
points allowed).
There is no upper limit to the number of sample rotations or
incidence angles.
The upper limit of Azimuth angles is defined by the Symmetry
variable (180° for PlaneSymmetrical, 360° for ASymmetrical,
ASymmetrical4D).
The overall upper limit of Radial angles is 180°.
Enumeration values (lines 6, 8, 10, 12):
All enumeration values are positive.
The number of enumeration values must match the Value total
from the line above.
Enumeration values do not have to be evenly spaced. (See the
example formats in the next section; the ScatterRadial and
ScatterAzimuth enumerations are not evenly spaced.)
16. DataBegin and DataEnd statements surround each large group
of data. Before each block of scatter data for a given Angle Of
Incidence is a value for Total Integrated Scatter. That value is on
a separate line preceded by “TIS ”. The value is a fraction, such
that a value of .500 would indicate that 50% of the light is
scattered, and the remaining is absorbed or transmitted in the
case of BRDF.
Following the TIS value, Scatter data is enumerated with columns
representing the ScatterRadial values for each ScatterAzimuth
row. The rows are organized in groups. First, the ScatterAzimuth
values are reported for each AngleOfIncidence. Data for each
AngleOfIncidence, which contains various ScatterAzimuth rows, is
then reported by following rows. Data for each SampleRotation,
which contains various AngleOfIncidence groups, is then reported
by appending more rows.
The enumeration formatting of scatter data changes depending
on the settings chosen for the SpectralContent variable. If the
SpectralContent variable is set to Monochrome, the formatting
appears like Figures 3 and 4 in the next section. If the
SpectralContent variable is set to XYZ, there are two additional
DataBegin and DataEnd statement lines, with an extra label line
above each DataBegin line that labels the data group with its
associated Tristimulus value. See Figure 5 in the next section.