The Good, the Bad, and the Ugly

Here are the images my renderer generated. I'm including three images for each: what the submitted code generated, what the `fixed' code generated, and what it should have generated. I've converted all the files to GIF, which means that they have been quantized down to 256 colors, so there may be subtle imperfections that aren't in the original PPM files.

Spheres

No problem with this one.

Spheres2

There is a very subtle problem with the lighting; can you find it?

Reflect

No problem with this one.

Fib

No problem with this one.

Checked Cube

This one I had no trouble with at all.

Dice

My error in speculative lighting shows up in the first (bad) image. The z buffer error is also clear from the leftmost cube. The second image isn't correct because I don't implement the CSG operators properly (but I do recognize and do *something* with them).

Spotlight

I don't really implement spots; I approximate them with point lights, and this is the result.

Golf

The lack of CSG does me in here. Notice the problems with the zbuffer in the original image, too.