Soon, we will launch a new and updated customer portal, which is an important step toward providing our customers with one place to learn, interact, and get help.
Learn more.

What Scattering Models are Available in Zemax?

This article provides a summary of the surface and bulk scattering models available in Zemax.
Sanjay Gangadhara
05/26/2010
Frequently Asked Questions

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).

Definition of the bi-directional scatter distribution function

where dLs is the scattered radiance, dEi 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:

Scattering geometry used to define x-vector

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(qs)
  • The scattered intensity is independent of the incident angle

Gaussian

BSDF(x) = A*exp[-|x|2/s2]

  • 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*sp*sq))*exp[-((p/sp)2 + (q/sq)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
  • sp, sq 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*s2*cos(qi)*cos(qs)/[1 + (B*|x|/l)2](s/2)

RI_BSDF

BSDF given by ASCII input

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 ciqi

  • 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 - g2)/[1 + g2 – 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 + cos2q)/l4

  • Characterizes scattering by small particles (particle size << wavelength)
  • Mean-free path scaled by wavelength (~ l4)
  • More details provided in the article entitled “Bulk Scattering with the Rayleigh Model

Mie

Probability distribution given by sum over spherical Bessel functions1

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.


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