**Learn more.**

# What Scattering Models are Available in Zemax?

Summary:

Authored By:

Published On:

Sample File:

Applies to:

Article:

**Introduction**

In any optical system, light may be scattered at a surface boundary (e.g. due to surface roughness) as well as within the bulk of a volume (e.g. due to light-particle interaction). Both of these scattering phenomena may be modeled in the non-sequential mode of Zemax.

Zemax provides a number of models to describe surface and bulk scattering. This article is meant to provide a summary of these models. More details on each model may be found in the chapter of the Zemax manual entitled “Non-Sequential Components”, as well as in associated Knowledge Base articles (under the category

*Non Sequential Ray Tracing > Sources, Splitting and Scattering*).

**Surface scattering models**

A number of models are available to model surface scattering in Zemax. These include built-in models as well as user-defined DLL models. The models are generally described in terms of the bi-directional scattering distribution function (BSDF).

where dL

_{s}is the scattered radiance, dE

_{i}is the incident irradiance, q is the polar angle as measured from the surface normal, f is the azimuthal angle, and the subscripts i and s refer to the incident and scattered directions, respectively. The BSDF can also be defined in terms of the vector

__x__rather than the polar coordinates q and f;

__x__represents the vector displacement between the scattered ray and the specular ray in the projected plane:

More details are provided in the chapter of the Zemax manual entitled “Non-Sequential Components”.

__Built-in scattering models__*Lambertian*

BSDF = 1/p

- The scattered ray projection vector has equal probability anywhere on the projected plane
- The scattered intensity varies like cos(q
_{s}) - The scattered intensity is independent of the incident angle

*Gaussian*

BSDF(x) = A*exp[-|__x__|^{2}/s^{2}]

- The scattering distribution is symmetric in direction cosine space
- s determines the width of the Gaussian distribution on the projected plane
- Maximum value allowed for s is 5 (for s > 5, distribution is nearly Lambertian)

*ABg*

BSDF(__x__) = A/[B + |__x__|^{g}]

- Widely used to model scattering due to random isotropic surface roughness
- Input values for A, B, and g are provided in an ASCII file (in the <data>\ABg_Data\ directory)
- Input value limitations: A >= 0, B >= 1.0E-12 (unless g = 0, then B = 0 is allowed)

__DLL scattering models__

*Lambertian*

BSDF = 1/p

- Same as built-in Lambertian model; used for illustrating how to write a DLL

*TwoGaussian*

BSDF: Combination of Lambertian and Gaussian distributions

- User specifies fraction of energy in Lambertian and Gaussian scattering
- Two Gaussian distributions are modeled, with independent inputs for the widths (s) and fractional energy
- User responsible for checking that fractional energies sum to <= 1

*Gaussian_XY*

Described in terms of a probability distribution rather than a BSDF:

P(p,q) = (4/(p*s_{p}*s_{q}))*exp[-((p/s_{p})^{2} + (q/s_{q})^{2})]

- Represents a Gaussian distribution along axes on the projected plane
- p is in the plane of incidence (POI) and q is normal to the POI
- The (p,q) axes do not correspond to the (x,y) axes of the system except for special cases

- s
_{p}, s_{q}may be > 0 or < 1 (otherwise use a Lambertian) - More details provided in the article entitled “How to Create a User-Defined Scattering Function”

*K-correlation*

BSDF(__x__) = A*s^{2}*cos(q_{i})*cos(q_{s})/[1 + (B*|__x__|/l)^{2}]^{(s/2)}

- Characterizes scattering due to surface microroughness
- Similar to ABg model, with an additional small angle roll-off useful for characterizing many surface finishes
- s represents the RMS surface roughness; other inputs described in the article entitled “How to Model Surface Scattering via the K-Correlation Distribution”

*RI_BSDF*

BSDF given by ASCII input

- Used to model surfaces whose scattering properties have been experimentally measured rather than fit to an analytic form
- Input data format is described in the article entitled “BSDF Data Interchange File Format Specification”
- Application of the data in Zemax modeling is described in the article entitled “How to Use Tabular BSDF Data to Define the Surface Scattering Distribution”

br/>If none of the distributions listed above is sufficient to model surface scattering in your system, you may construct your own DLL model, following the instructions provided in the article entitled “How to Create a User-Defined Scattering Function”.

**Bulk scattering models**

A number of models are available to model bulk scattering in Zemax. These include a built-in model as well as user-defined DLL models. The models are generally described in terms of a probability distribution function (P) for the angle of scattering. In all cases, the probability of a scattering event occurring is given by an exponential.

p(x) = 1.0 - exp[-m*x]

where x is the distance that light has travelled in the volume, m = 1/M and M is the mean-free path for scattering in the volume. During a bulk scattering event, the wavelength may be also altered (in addition to the ray trajectory), allowing users to model fluoresence (see the article entitled "How to Model Fluorescence using Bulk Scattering" for a complete description). More details are provided in the chapter of the Zemax manual entitled “Non-Sequential Components”.

__Built-in scattering model__*Angle*

P(q) = 1/2

- The probability of scattering into any angle is constant
- The maximum angle for scattering can be set as a user input (“Angle” parameter)

__DLL scattering models__

*Bulk_samp_1*

P(q) = 1/2

- Same as built-in Angle model; used for illustrating how to write a DLL

*Poly_bulk_scat*

P(q) = S c_{i}q^{i}

- Angular scattering distribution is represented by a polynomial
- Range of summation goes from i = 0 to i = 12 (i.e. can model up to a 12th order polynomial)

*Henyey-Greenstein_bulk*

P(q) = (1/4p)*(1 - g^{2})/[1 + g^{2} – 2g*cos(q)]^{3/2}

- Characterizes scattering by small particles
- Useful for describing scattering in biological tissue, interstellar dust clouds
- Input values for g range from 10
^{-4}(uniform angular distribution) to 1.0 (highly peaked about q = 0) - More details provided in the article entitled “Using the Henyey-Greenstein Distribution to Model Bulk Scattering”

*Rayleigh*

P(q,l) = 0.375*(1 + cos^{2}q)/l^{4}

- Characterizes scattering by small particles (particle size << wavelength)
- Mean-free path scaled by wavelength (~ l
^{4}) - More details provided in the article entitled “Bulk Scattering with the Rayleigh Model”

*Mie*

Probability distribution given by sum over spherical Bessel functions^{1}

- Characterizes scattering for arbitrary ratios of particle size to wavelength
- Used to describe scattering in the atmosphere
- More details provided in the article entitled “How to Simulate Atmospheric Scattering using a Mie model”

If none of the distributions listed above is sufficient to model bulk scattering in your system, you may also construct your own DLL model, using the source code provided for the above DLLs as a starting point.

^{1}Craig F. Bohren and Donald R. Huffman, “Absorption and Scattering of Light by Small Particles”, John Wiley & Sons (1983).