There was not much to the design to the distribution features. For the glossy metal I took the code from the normal metal material, then tweaked the reflection. For the thinlens camera, I took the pinhole camera then tweaked the direction using the lens parameters. Then for the area light, I simply picked a random point on the area to determine the light position. I had to make a design decision for sampling. I set a default value of 1 for the sample value, then loop for every sample inside my renderScene function. I also added anti-aliasing to the scene when there are more then one samples.
My difficulty for this assignment was getting the time to work on it. My other classes have been demanding so I would only be able to spend about an hour a time on this project. Which made the whole project take longer then it should have. I was parsing the file wrong so I was doing the right thing and not getting the right images. There has been something like this on every project in this class.
There are a few things going on in this scene. The bunny is looking at itself in the metal mirror. The room is a Lambertian material with different colors. On the ceiling there is an area light. I'm showing where the light is by a box that has an EmissiveMaterial. I added the simple material just for this scene. In the reflection there is also a big sphere that is a glossy metal material. I use a thinlens camera which is focused exactly on the bunny reflection. This gives the effect of a foreground and background relative to the bunny.