Ray Tracing - Instancing

Here are my instancing examples. I wanted to come up with some better picts, but had no time.
To create these instances, I created a surface instance class that was a public surface. In this
class I had it store a pointer to the base object and a single matrix inverse. The inverse
matrix is what I used to transform the rays in my hit function. I should have done a better
job controlling all of the pointers I had flying around, because in some cases the program
would die without enough memory to continue. This led me to the pictures you see here:


Image 1: 4 thousand spheres

Image 2: 31 thousand spheres

Image 3: 250 thousand cows (MOOOOOO)

Image 4: 20 thousand spheres

Image 5: 1 million cows

Image 6: 2 million spheres

Image 7: 200 million spheres (looks ALOT like 2 million, huh?)

Image 8: A small buddha army.

Alot of the smaller pictures don't look very good because I didn't come up with a good
scene to render that many objects.