One of the requirements of this assignment was to implement the BounceDepth command, a command limiting the depth of recursive ray tracing. While implementing this, I was wondering how the value of BounceDepth affected the rendered image. So, I created this picture to test it. It was a picture of a ball on a floor with a mirror on each of the four sides.
The scene consisted of a blue ball on a floor, four mirror walls with reflectance of 1, and two point lights above the ball. I tried adjusting BounceDepth to various values to see how it affected the image. With this scene, it was very easy to see how BounceDepth affected the image. For example, if BounceDepth is 1, you will see only one ball in the mirror. It BounceDepth is 2, you will see two balls, and so on. As I increased BounceDepth, it took longer to render. I found that at BounceDepth equals 10, the ball started to disappear from the effect of accumulated ambient light. So I settled at that value. In reality, the BouneDepth value probably approaches infinity, limited only by the speed of light.