How to model a partially reflective and partially scattering surface

This article describes how to model a partially reflective surface which diffusely scatters a fraction of incident energy into a specific distribution. Demonstrated here are cases of scattering combined with partial absorption, as well as partial specular reflection.

Authored By Dan Hill


Article Attachments


OpticStudio provides users with the ability to make their system as realistic as possible through the use of coating data. In Non-Sequential mode, coatings may be added to any object surface and edited so that the surface has the required reflective and transmissive properties. In particular, partially reflective (or optionally transmissive) surfaces can be modelled that diffusely scatter only a fraction of the incident energy in a specific distribution. 

Starting with the attached file, we will create and use an ideal coating in order to utilize the appropriate coating/scattering properties that create a partially reflective surface. 

System setup

We wish to use the face of a Rectangular Volume to simulate a partially reflective (60% reflective) surface that scatters 80% of the reflected light in a Lambertian distribution, leaving the other 20% as specularly reflected. Using three Non-Sequential Objects, we may quickly and easily demonstrate how to apply Lambertian scattering and ideal coatings to produce the desired effects.

To avoid the redundancy of having to create the file from scratch, please download the attached file.

Upon opening the file, you should find that a single Source Ray is incident onto the front face of a Rectangular Volume made of material type MIRROR. The ray from the source perfectly reflects back onto itself and is incident on the detector plane. Currently, there are no coatings and/or scattering profiles defined on any single surface of the Rectangular Volume.

An initial Ray Trace without considering polarization produces a a centered ray with a total power of 1W on the detector.


Creating ideal coatings

Defining and Applying Coatings in OpticStudio is a topic unto itself and is covered in detail in the “Defining Coatings” section in the Help Files. OpticStudio can model any type of thin-film coating, including multilayer dielectric and metallic coatings. However, we will limit our discussion in this article to constructing and applying simple, ideal coatings to the objects in our system.

Like all coatings in OpticStudio, ideal coatings are created in a coating file consisting of sections of data defining materials, tapers, and coatings. For one ideal coating, the syntax is simply:

IDEAL <name> <Transmitted Intensity> <Reflected Intensity>

Ideal coatings are defined only by the intensity, transmission, and reflection coefficients, and are independent of ray wavelength or angle of incidence. The absorption coefficient is computed automatically via A = 1.0 – R – T, to conserve energy.

The coating we want to use will transmit 40% of the ray energy and reflect 60% of the energy, independent of the wavelength, incident angle, etc. The input is shown:

IDEAL 60Reflect 0.4 0.6

The coatings made available in any single design in OpticStudio are defined in the chosen Coating File as listed in System Explorer...Files.


The COATING.DAT file, which is the default coating file, is simply an ASCII text file which consists of sections of data relative to various types of coatings in OpticStudio. This file may be modified to include other user-defined coatings. If any additions or changes are made, it is always recommended that the file be saved under a different name. Otherwise, updated installations of OpticStudio can overwrite the default coating file. 

Open the COATING.DAT file under Libraries...Coatings Tools...Edit Coating File. There are several simple ideal coatings which currently exist in the file, but none of which match the reflection/transmission ratio that we wish to model in this demonstration.


In the current example, we want 60% reflection from a mirrored surface. Thus, the transmission is 40%. We need to insert an ideal coating which represents these percentages:


Once the new ideal coating has been entered into the coating file, save the file under an appropriate filename, such as MYCOATING.DAT. Note that the extension must end in .DAT and saved into the same directory as the COATING.DAT file.

Applying ideal coatings

For OpticStudio to recognize the newly created ideal coating, you must choose your new catalog from the Coating File field in System Explorer...Files.


We want to apply the coating to the front face of the Rectangular Volume. We can do this by opening the Object Properties dialog for Object 2, and selecting the Coating/Scattering tab. The first available menu under this tab is the "Face" selection. All objects in Non-Sequential Mode (including any imported CAD objects) have at least one face. For the Rectangular Volume Object, there are three types: 0, Side Faces; 1, Front Face; and 2, Back Face.


Because of this, different coatings and scattering profiles may be applied to different faces of the object. For the current example, select the Coating/Scatter Group as 1, Front Face.

By default, no coating is applied to any surface. For the front face of the rectangular volume, the newly created ideal coating may be applied via the Coating pull-down menu just below the Coating/Scatter Group selection. Select the 60REFLECT ideal coating:

Select coat

Once the appropriate coating is selected, press OK to accept the changes and exit the Object Properties dialog. To verify that the coating is applied and is working properly, we can run a ray trace with Use Polarization checked.


As expected, the total power of the ray reaching the detector has been reduced, and is exactly 60% of the initial power of the ray:


Applying scattering to selected surfaces

Just like coatings, scattering profiles can be selected for each defined face on a particular object. In the current example, re-open the Object Properties dialog for the Rectangular Volume. Underneath the Coating/Scattering tab, make sure to re-select the 1, Front Face as the Coating/Scatter Group. 

There are various built-in scattering profiles in OpticStudio; by default, No Scattering is selected. Select the Lambertian scatter model. Once the scattering is changed to Lambertian, there are two essential data entry fields which become activated: Scatter Fraction and Number of Rays. The fraction must be between zero (0% of incident ray energy will be scattered) and 1.0 (100% of incident ray energy will be scattered). How OpticStudio treats these values depends upon whether or not Ray Splitting is turned on (via each specific analysis feature). For a complete discussion, please refer to the “Scattering” section of the OpticStudio Help File.

For the current example, set the Scatter Fraction and Number of Rays to 0.8 and 5 respectively. This results in the scattered energy (80% of the incident energy, after first accounting for attenuation by the coating) will be evenly divided amongst the five scattered rays when splitting is turned on. The specular ray, on the other hand, will receive a fraction of the total reflected/scattered energy equal to 1.0 – Scatter Fraction.


Close the Object Properties menu.

In order to verify the changes made to the front face of the Rectangular Volume open the settings of the NSC 3D layout and enable Fletch Rays, Split NSC Rays, Scatter NSC Rays, and Use Polarization. Note that the initial source ray is scattered (with Lambertian probability) into 5 rays, for a total of 6 rays reaching the detector.


And, if we perform yet another Ray Trace, the total power of these rays (provided that all 5 scattered rays hit the detector) is equivalent to 0.6 Watts, or 60% of the initial power. Note: The layout rays scatter randomly so the detector and 3D layout view will likely look slightly different for you. As long as you have the correct number of rays, you have done everything correctly. 



By tracing 2.5 million rays and increasing the detector resolution, we can observe that the highest radiant intensity is at normal incidence, which corresponds to the specular reflected portion of the energy:


So, we have easily created a partially reflective scattering surface in OpticStudio. The tools and concepts used in this example may be applied to much more complex systems, but the basis and fundamental approach to applying coatings and scattering profiles remains the same.

Applying the same coating/scattering settings to other objects

Let’s assume that we wanted to apply the same coating and scatter profiles to the back and side faces of the rectangular volume for further analysis. Using the saved profile feature in the Coating/Scattering tab, these settings may be saved and quickly applied to other Coating/Scatter Groups, including those of other objects.

Once the desired settings have been applied, click the Save below the "Profile" setting in the Coating/Scattering tab of the Object Properties dialog.


In the Save New Profile dialog, you may choose to enter the desired Profile Name which will correspond to the saved coating and scattering settings:


This profile can then be chosen for the other coating/scattering groups of the Rectangular Volume:



Was this article helpful?
41 out of 44 found this helpful



Please sign in to leave a comment.