The Tabulated BSDF representation is an isotropic, wavelength invariant scatter model that interpolates BSDF values from a properly formatted tabular data file for any arbitrary incident angle and outgoing scattered ray direction. The intention of this scatter model is to support the direct use of BSDF measurement data, though fitting of tabular data to binomial/polynomial and Harvey/ABg/ExtendedHarvey functional forms is also encouraged when the tabular data can be well represented by those functions.
Tabular BSDF data can be categorized in two types; in-plane and out-of-plane. It is important to verify the type of data being used in the Tabulated BSDF scatter model, as each type has slightly different rules regarding the data formatting and interpolation assumptions.
The coordinate system for in-plane scatter data is shown below, where a ray is incident on a scatter surface with polar angle -θspec with respect to the local surface normal. An outgoing scattered ray direction has angle θscat with respect to the surface normal and the outgoing specular ray direction has angle θspec with respect to the surface normal. All three rays, the incident ray, specular ray, and scattered ray, lie in the same plane with the surface normal. In-plane scatter data, acquired from scatterometer measurements or published data, is more common than out-of-plane data.
The coordinate system for out-of-plane scatter data is shown below. The polar angles, θ, are left off the diagram for simplicity but will be defined by the angle between the incident, specular, or scatter direction and the surface normal in the same manner as above for the in-plane scatter definition. The azimuthal angles, f, are defined such that when f_scat - f_inc = 0 or 180 degrees, the scatter direction corresponds to the in-plane definition. In all other cases, the scatter direction will lie out-of-plane.
Specific information on the tabular data file format required for in-plane and out-of-plane scatter data is provided in the Application Notes sections below.
It is equally as important to plot the raw tabular data before providing it to FRED, in order to (a) understand what the expected behavior of the resulting Tabular BSDF model should be, and (b) identify any modifications or corrections to the measured dataset. Consider the 2D angle BSDF plot below of a commercially available black surface treatment from Acktar, where in-plane BSDF scans for two specular angles, 3 degrees and 60 degrees, are shown. Each curve in the plot corresponds to an in-plane BSDF scan associated with either a 3 degree incident angle or a 60 degree incident angle.
The BSDF curves shown are characteristic of diffuse black surface treatments; having a quasi-lambertian behavior at nearly normal-incidence and acquiring a mild tilt and curvature as the angle of incidence is increased (to 60 degrees, in this example). Any Tabular BSDF scattering model constructed from this dataset should exhibit the same functional behavior and closely match the magnitudes of the BSDF for any incident specular angle and outgoing scatter direction.
Four regions of the BSDF plots are circled in red to note some common aspects of BSDF data sets that may need to be modified prior to being loaded into FRED. The two regions labeled "A" on the plot, at the extreme scatter angles approaching +/- 90 degrees, show abrupt transitions that either dramatically increase, or dramatically decrease the BSDF values in those directions. These data should be removed from the tabular data file supplied to FRED. The two regions labeled "B" on the plot correspond to the negative of the specular direction for each incident angle scan. These "dropout" regions occur where the scatterometer detection arm is scanned through the fixed, incident laser beam, blocking the signal path. The BSDF data values in these "dropout" regions should be removed or manually re-populated with suitable values. Under no circumstances should the BSDF values be set to zero (or negative) in these regions, which violates the fundamental requirement of positivity in the BSDF values.
Note that in the example BSDF plots above, the smallest specular angle measurement set is shown to be 3 degrees. In general, supplying a specular angle measurement set at zero degrees incidence, or as small an angle close to normal as can be achieved by the measuring instrument, will be beneficial to the overall quality of the Tabulated BSDF data interpolation. In fact, when the Tabulated BSDF model detects that 0 degree specular data has not been provided as part of the input file, it will synthesize the 0 degree specular data subject to the rules below. Not only will the 0 degree specular dataset be beneficial to the Tabulated BSDF model itself, the BSDF data fitting utilities (which accept tabular BSDF data files as input) require that data as part of their fitting algorithms. When the supplied data file does not contain a measurement set corresponding to 0 degrees specular:
•If the supplied data file has 2 or more non-zero specular angle measurement sets, the 0 degree data will be synthesized from the two smallest specular angle datasets in the file •If the supplied data file contains only a single non-zero specular angle measurement set, the 0 degree data will be synthesized by shifting the single angle dataset to zero degrees. In this case, there is really only one unique set of data and the resulting scatter model will be shift-invariant (i.e. the BSDF is a function of |sin(θ_scatter)-sin(θ_specular)| ).
This feature can be accessed by: 1. Right mouse click on the Scatterers folder in the object tree and select, "Create a new scatterer" 2. Select "Tabulated BSDF (Reciprocity-obeying sampled BSDF)" as the Type in the resulting dialog
Tabulated BSDF Interpolation Space When the tabular data is processed, the a0,b0 (specular) and a,b (scatter) angle pairs are mapped into U,V,W interpolation space using the following relationships:
Specular ray a0 = sin(f0) sin(θ0) b0 = cos(f0) sin(θ0)
Scattered ray a = sin(f) sin(θ) b = cos(f) sin(θ)
U = a2 + b2 V = aa0 + bb0 W = a02 + b02 T = (a-a0)2 + (b-b0)2 = U - 2V + W
The BSDF interpolation at arbitrary incident and scatter angles takes place in this U,V,W space, where certain symmetry rules are applied to the data in order to reduce its dimensionality and improve the quality and speed of the interpolation.
For example, the scatter directions for 3 degree and 60 degree incident angles of an in-plane tabulated BSDF dataset having b-b0 symmetry is shown in the interpolation space below. This particular symmetry results in a compression of the data to "V-Planes" when plotted as Sqrt(T) vs. V. In this space, the coordinates for any arbitrary incident and scatter direction pair are calculated and the BSDF is interpolated from the nearby data points. Because of the large dynamic range present in BSDF data, the actual interpolation is performed using log10(BSDF) values for improved numerical stability.
A properly formatted text file must be created in order to feed the BSDF data into the Tabulated BSDF scatter model. The sections below discuss the file header that is required at the start of the text file for all supplied data types (in-plane and out-of-plane), the formatting of the data for in-plane BSDF, and the formatting of data for out-of-plane BSDF.
The Tabulated BSDF data file format contains a two line header at the start of the file. The first line of the header will always be given as:
type bsdf_data
The second line of the header describes the interpretation of the angles, the BSDF values, and any scaling of the BSDF that should be applied to the given values when read into the tabulated BSDF model. The second header line will be provided as:
format angles=X bsdf=Y scale=Z
where X, Y and Z can take on the following values:
An example of a complete file header would look like: type bsdf_data format angles=deg bsdf=value scale=1.0
The above file header tells FRED that the data in the file specifies specular and scatter angles in degrees, the value associated with each scattered direction is the BSDF, and no additional scaling of the BSDF values in the file should be applied.
If we consider the BSDF angle plot below, we can see that there are two sets of in-plane BSDF measurements present. A scan of the BSDF from -90 to +90 degrees scatter angle was made for a source beam incident on the sample at 3 degrees and a second scan over the same scatter angle range was made for a source beam incident on the sample at 60 degrees.
Each of the individual BSDF scans, corresponding to 3 degrees and 60 degrees, will have its own section of data in the file with each section using the following structure (tab or comma delimited formatting):
In the common case of in-plane scatter measurements, the f_specular and f_scatter values will be set to 0. Each section of data begins with a row containing just two values that indicates the specular direction associated with the BSDF values that follow in the file. Next, rows containing three values correspond to the scatter direction (θ_scatter and f_scatter) and the associated BSDF value in that direction. When there is no more scatter data associated with the specular direction, a new section of data is begun using the above format for the next specular direction measurement scan.
Example BSDF data files are shown below for the same measurement dataset, consisting of three in-plane scans at specular angles of 0, 15 and 30 degrees (note that the azimuth angles are all zero). The file on the left uses the angles=deg convention as indicated in the file header, where the specular and scatter directions are provided as polar and azimuthal angles in degrees. The file on the right uses the angles=sin convention, where the specular and scatter directions are converted to a0, b0 and a, b, respectively.
The overall structure for BSDF datasets that contain out-of-plane data is identical except that the azimuth angles associated with the specular and scatter directions will be non-zero. There are, however, specific rules regarding the ordering of the specular and scatter angle data that must be followed and which are provided below.
Advanced Interpolation Controls The advanced controls described in this section are generally not needed and can be ignored for most Tabulated BSDF model implementations.
There may be cases in which the interpolation scheme generates artifacts for interpolated BSDF values that are unphysical. Though rare, this may be seen specifically in datasets which are highly "specular", in the sense that the BSDF is changing rapidly from sample to sample as you approach the specular direction, and is compounded when the near-specular sample points are sparse. In such cases, high BSDF value data points may yield an unphysical influence at other locations in the interpolation space and result in unphysical interpolated BSDF behavior.
An example of this behavior is shown below, where the BSDF data for a specular black paint sample is loaded into the Tabulated BSDF model. The 2D BSDF angle plot of the raw data in the file is shown below, where the specular angles of the dataset are 10, 30, 50, 70 and 80 degrees.
After the model is created, the 2D BSDF angle plot is called again on the Tabulated BSDF model so that the behavior of the model with interpolation included can be visualized. The 0-degree and 15-degree curves in the plot below are synthesized from the provided tabular data and side lobes adjacent to the peaks can be observed. These unphysical side-lobes are the result of the behavior described above, where the peak BSDF values in the specular directions have too much influence on the interpolated values at other angles and artificially increases the BSDF.
FRED offers a way to address this behavior by using an optional "exclusion angle" parameter on the format line of the tabulated BSDF file header, which has the effect of excluding points within a specified distance from specular from participating in the BSDF interpolation. The format header keyword is exclude=X, as shown in the example below. The value of X is sin(Dθ_exclude), where Dθ_exclude is the distance from the specular direction in degrees.
format angles=deg bsdf=value scale=1 exclude=0.03
Applying the exclude=0.03 option (exclusion angle of ~1.7 degrees) to the file format header of the specular black paint example and then calling the 2D BSDF angle plot again, we see that the side lobes in the 0-degree and 15-degree AOI curves are no longer present.
An appropriate value to provide for the exclude=X option in the format header will need to be determined empirically for a specific scatter model. This can be done iteratively using the following procedure: 1. Specify a value for the exclude option in the tabulated BSDF data file 2. Load the file into a Tabulated BSDF scatter model and press OK 3. Right mouse click on the scatter model and call a 2D or 3D BSDF plot option to check the behavior of the interpolated BSDF 4. Repeat steps 1-3 as necessary to converge on a satisfactory value for the exclude option
As noted in the Description section, the Tabulated BSDF model internally requires data corresponding to 0-degrees specular AOI. If this data is not supplied to the Tabulated BSDF model, it will be interpolated and stored internally as part of the original data. By default, the 0-degree data will be interpolated such that it has 181 samples from 0 to 90 degrees scatter angle. The number of sample points for the interpolated 0-degree data can be changed using the optional argument, num=X, in the format header string, where X is the number of sample points. If the data is in-plane only, then the number of sample points created will be exactly X. If there is out-of-plane data in the file, then the number of points will be close to, but not exactly, X. This is a consequence of needing to sample half of the direction cosine hemisphere and then project those sample points to the plane of incidence. An example file format header using this option is shown below, where 501 samples in the scatter plane are requested for interpolated 0-degree data.
format angles=deg bsdf=value scale=1 num=501
This option is only used once by FRED when the data file is initially read into the Tabulated BSDF model and the 0-degree data is interpolated (if needed).
ABg – for polished surface scatter Binomial - plane symmetric case of general Polynomial Extended Harvey-Shack - shift variant form of the Harvey-Shack model Extended Scripted - User-defined scattering function that allows manipulation of the scattered rays' polarization state Flat Black Paint – specify Total Integrated Scatter (TIS) Harvey-Shack – for polished surface scatter K-Correlation – analytic PSD Lambertian – for diffuse scatter Phong – cosn from specular Polynomial - General polynomial with diffuse and Lorentzian component Scripted - User-defined scattering function Surface Particle (Mie) – for particulate contamination Tabulated PSD – measured PSD data
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||