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.


No problem with this one.


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


No problem with this one.


No problem with this one.

Checked Cube

This one I had no trouble with at all.


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).


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


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