Late at night in MC6055

Late at night in MC6055

This picture is a scene of undergrad graphics lab. All the puppets in the scene come from the assignment 3 of CS488 Spring 2000.

We decided to do something interesting for our TA this term. We decided to render the undergrad graphics lab scene with all the interesting puppets we found in the assignment 3. Since assignment 4 is ray tracing, we hoped to inspire more interesting pictures from the students.

We took the students' tcl scripts from Assignment 3 and made small C call back interface changes. We started rendering each puppet individually. We ran into all kinds of interesting problems.

Some of them didn't specify surface property for each body parts. That's because OpenGL will automatically use the previous surface property for current one, while ray tracer will not.

Some of them had very nice procedure to construct their puppets and it was very easy to adapt their tcl scripts to our ray tracer. Some of them didn't, but they had set short names for their really long hierarchical node names, which was still good. Those with none of the above really gave us a headache, when we had to change every node name to suit our ray tracer. (Well, vi really helped a lot.)

The biggest problem was scaling. Most people didn't carry down their scaling for primitives, but a few did. We had to add a flag to the ray tracer and used it properly for each puppet.

To position a puppet in the right position is a pain. Imagine adjusting one parameter and then waiting several minutes to see the result. If it is not good, we have to do it over and over again. So we used OpenGL to render the whole scene first to test the position of puppets. Some of the puppets have extra primitives and lines, so we texture mapped them as posters.

Finally, the whole scene took 19:07:47 hours to render. We rerendered the scene using hierarchical bounding spheres, and it only took 1:19:04 hours. The scene depicted here has reflections on the ceiling and walls, and it took 1:49:51 hour to render.

Acknowledgements:

graphics lab scene from Carsten Whimster

Muscleman by Chris Fogel
Eeyore by Catherine M Phillips
Goro by Christopher P. Murphy
Lobster by Chris AtLee
Gundam by Terence Wong
Sumo wrestler by Douglas P. Y. Ng
Mickey mouse by Dan Truong
Bender by Francis Chang
Plant by George Elkoura
Astroboy by Gousuke Sakamoto
Skunk by Justina C.Y. Ho
Batman by James Brydon
Superman by Julia Taylor-Hell
Genma Saotome by Sammy Huen
Panda by Tim Lofft
Hand by Tom K.H. Cheng
Pirate by Travis Provick

by Selina Siu and Teresa Ge