- Home
- Polarization and Thin Film Coatings
- How To Model Corner-Cube Retroreflectors
- Home
- Sequential Ray Tracing
- System Modeling
- How To Model Corner-Cube Retroreflectors
How To Model Corner-Cube Retroreflectors
- By Mark Nicholson
- Published 18 July 2007
- Polarization and Thin Film Coatings , System Modeling
-
Rating:




A Polygon Object Model of the Corner-Cube
The corner-cube retroreflector uses three mutually orthogonal reflectors to retroreflect any ray that lands on it. It is therefore ideal to model this with a polygon object (referred to as a POB object in this article), and hybrid-mode non-sequential ray-tracing, as follows:
See the User's Guide for full details of the POB file syntax. This produces an object like so:

Vertices 1,2,3 and 4 are defined at the stated (x,y,z) coordinates, and they are then formed into a series of four triangles to make up the faces of the object. For example, T 1 2 3 forms the front face from vertices 1, 2, and 3. The syntax is

Note that the 'friendly' names given to the faces in the drop-down list are set by the C 0, C 1 etc lines in the .POB file above. We will leave all faces uncoated for now. When we fire rays into the corner cube, and ray undergoes three total internal reflections and is retroreflected back along the direction it came in, with a lateral offset:

This file is 'Perfect corner-cube retro-reflector.zmx' in the zip file at the end of this article. Note the .pob objects included in the zip file should be placed in the {zemaxroot}/objects folder before opening the file.
The OPD plot shows that no wavefront error is introduced by this component:

and the ray-fan plot shows no angular error between any ray and the chief ray (note that this file is in afocal mode, and so the ray-fan plot is in units of milli-radians)

Note also that if the retroreflector is tilted, the rays continue to retroreflect and the OPD remains flat. The return beam is offset with respect to the input beam, but is perfectly collinear with it.
! CUBE CORNER Retroreflector
C 0 "Front Face"
C 1 "Side 1"
C 2 "Side 2"
C 3 "Side 3"
! First define the location of the vertices
! front face vertices
! Local coordinate reference is in the center of the front face
V 1 12.247448713915890490986420373529 -7.0710678118654752440084436210485 0
V 2 -12.247448713915890490986420373529 -7.0710678118654752440084436210485 0
V 3 0 14.142135623730950488016887242097 0
! back vertex
V 4 0 0 10
! Now define the triangular facets
! All faces are isreflective = 0 so reflectivity is set
! by the index of the material and any coatings applied
! Front
T 1 2 3 0 0
! SIDES
T 4 1 2 0 1
T 4 1 3 0 2
T 4 2 3 0 3
See the User's Guide for full details of the POB file syntax. This produces an object like so:

Vertices 1,2,3 and 4 are defined at the stated (x,y,z) coordinates, and they are then formed into a series of four triangles to make up the faces of the object. For example, T 1 2 3 forms the front face from vertices 1, 2, and 3. The syntax is
T vertex1 vertex2 vertex3 isreflective faceThe "isreflective" flag is -1 if the surface absorbs, 1 if the surface reflects, or 0 if the surface refracts. Note using this flag allows some triangles to be reflective, and others to be refractive or absorptive, within the same Polygon Object if desired. In this case, we want all faces to be refractive, and will add coatings alter if needed to provide the desired reflectivity. The value for "face" defines which face the triangle belongs to. In this case, each triangle is a unique face. Coatings and scattering functions are added to the faces, like so:

Note that the 'friendly' names given to the faces in the drop-down list are set by the C 0, C 1 etc lines in the .POB file above. We will leave all faces uncoated for now. When we fire rays into the corner cube, and ray undergoes three total internal reflections and is retroreflected back along the direction it came in, with a lateral offset:

This file is 'Perfect corner-cube retro-reflector.zmx' in the zip file at the end of this article. Note the .pob objects included in the zip file should be placed in the {zemaxroot}/objects folder before opening the file.
The OPD plot shows that no wavefront error is introduced by this component:

and the ray-fan plot shows no angular error between any ray and the chief ray (note that this file is in afocal mode, and so the ray-fan plot is in units of milli-radians)

Note also that if the retroreflector is tilted, the rays continue to retroreflect and the OPD remains flat. The return beam is offset with respect to the input beam, but is perfectly collinear with it.