Ray tracers are unequaled in their ability to simulate reflection. For geometers, this makes it possible to model and investigate reflection groups. A single reflection corresponds to a single mirror. If an object is placed in front of this mirror, the object and its reflection can be seen. We say that a single reflection generates a group of order 2 [7, p.75]. When the object is placed between two parallel mirrors, there can be an unlimited number of reflections. In other words, two parallel reflections generate an infinite group. This configuration is modeled in Figure 7, which shows several of the images of a cylinder and a triangle in two parallel mirrors. Ray tracers allow one to set the maximum number of reflections that will be computed before fixing the color of a pixel in order to limit the time required to render an image. In this case, we have set the “maximum trace level” to 16. Close inspection of the linked animation will reveal that the group generated is the infinite dihedral group [7, p.75].
Figure 8 models what happens when two mirrors are set at a dihedral angle of \(\pi/4\) and a sphere is placed between them. As we can see, eight images are generated, and in fact the two reflections generate the dihedral group \(D_4\). The animation shows what happens when the sphere is moved closer and closer to the line of intersection of the two mirrors. Setting the angle between the mirrors to be any submultiple of \(\pi\) will generate a corresponding dihedral group [7, p.77].
Three mirrors arranged in the proper configuration will generate a finite group [7, p.81]. Figure 9 illustrates what happens when the dihedral angle between the three pairs of mirrors is \(\pi/2\), \(\pi/3\) and \(\pi/5\). What is going on is quite remarkable. This truncated dodecahedron is actually the image of a single cylinder reflected numerous times in the three mirrors. The accompanying animation illustrates what is seen when this single cylinder moves towards the viewer.