When a ray is traced to the next optical surface (the next optical surface being a standard or an even aspheric surface), there are two solutions to the ray-surface intercept equations:
OpticStudio selects the correct solution in most cases. However, in certain systems, so-called “strange” rays are actually intended to intersect the next surface at the other “alternate” solution.
One of this “alternate” case is when light falls on a water droplet and makes a rainbow.
Let’s see how to model this in OpticStudio. The file (that can be found in the attachments) was created by my colleague Michael Cheng. Thank you Michael!
In the Lens Data Editor, the file looks like this:
Light arrives on Surface 3 (in orange below) which is decentered in Y:
Then light propagates through water until Surface 4 (in orange below):
At Surface 4, the angle of incidence is roughly 47°.
At 47°, we are getting close to the angle of total internal reflection. So part of the light is reflected, and part of the light is transmitted.
Let’s have a look at the ray reflected by the droplet of water. That ray will hit again Surface 4.
To indicate that we are observing a reflected ray, Surface 4 material is set to MIRROR. After Surface 4, the software expects a negative thickness because MIRROR surfaces change the sign of propagation.
But because of the Sequential Mode, Surface 4 has to be defined again for the next ray-intercept. In the Lens Data Editor, Surface 5 is a “copy paste” of Surface 4. The Alternate Even surface is ignored for now:
Now the software has 2 choices: use the actual ray-intercept (because the ray is already on Surface 4/Surface 5) or propagate the ray to the new ray-intercept.
The software uses the actual ray-intercept!
At Surface 5, the merit function gives the angles of incidence and exitance:
The exitance angle is given by Snell’s law. Because the thickness is negative, here is the new ray :
This ray is not physical!
In fact, we’d like the software to choose the other ray-intercept point.
So the solution is to use the “Alternate” surface!