Rendering competition background.
The judges this year were:
Tanya and Victor won first prize in the rendering competition this year for their outstanding picture of a lizard on a leaf. The lizard and leaf were modeled in 3D Studio Max using NURBs. Many people had a hard time distinguishing the photograph from the rendering during the competition.
The scene uses a mixture of some very nice rendering techniques. They implemented depth of field to give the background the proper blur. They also implemented procedural and textural bump mapping. The textural bump mapping was used to give the leaves a more natural look. The procedural bump mapping used a novel two pass algorithm. The first pass was to determine the location of the centers of the bumps based on user specified pitch and the three-dimensional distance between points sampled on the same object in the image. The second pass was to find the closest bump center for the hit point and then to bend the surface normal at that point to match the normal of the corresponding point on a sphere. The zoomed in results are quite nice.
Brad and Jeremy won second prize for their renderings of an hour glass as lit from several different natural environments, based on techniques for capturing and displaying high dynamic range images by Paul Debevec. The rendered images show the hourglass as lit from a Eucalyptus Grove, St. Peters Basilica, and the 2213 Vine Street Kitchen.
Not only did Brad and Jeremy produce some outstanding images, they also built several tools for debugging the rendering process. Amongst the tools they created were a progressive rendering window, a checkpointing mechanism for long rendering runs, and a graphical debugger. We expect to see these tools show up in next years class.
Greg and Yu Ping earned an honorable mention for thier excellent lighter scene. They implemented CSG, solid procedural texturing, bump mapping, plus some volume rendering techniques for the flame. The CSG allowed them to make a very convincing lighter model. The flame was treated as a volume light source, which was implemented in a manner similar to area light sources.
They also put together a movie of the flame dancing on the lighter.
Menelaos earned an honorable mention for his rendering of an orchid. The petals were modeled using NURBs, and he also implemented a simplified model for subsurface scattering. This gives the petals a soft translucent feel.
Adam got an honorable mention for his work in nonlinear ray tracing. He wanted to be able to render mirages, so he added volumes to the ray tracer. These volumes represent sections of atmosphere at different temperatures which causes them to have different refractive indexes. The rays then bend appropriately to give the different mirage effects.
Matt rendered some Hershey's Kisses for his project. The foil look was generated using a bumpmap generated from a scanned wrapper. He also added decal texturing for the bag of kisses on the table.
Gulli and Padma ended up rendering a wall sconce from a shop called "Delight" on Birch Street, Palo Alto. They added some transparency effects for the colored glass, and modeled the curvature of the arm using NURBs. The metal is anisotropic brushed metal.
Jim rendered these golf scenes using texels for the grass. A detailed grass model would be far too expensive to compute, so he wanted to see the effects of applying a fur rendering algorithm to grass. He also bump mapped the golf ball, and added the dirt to the label texture to give it a more nautral look and feel.
Mike and Haobo rendered a well used set of keys. They implemented a number of interesting techniques to give their pictures a realistic feel. They implemented a simplified CSG model, and added a masking primitive to help stamp lettering in the keys. They also added noise functions, bump mapping, and several different surface shaders to their project.
Using height fields, Shuo-Yen Choo was able to produce some interesting bread images. He also generated a texture map based on random points from a scan of a piece of bread.
Ashley and Alan implemented several features for their "sexy" key rendering. Their scene was totally hand rendered. They implemented full CSG to get the details of the keys right, and bump mapping to add the text on the bike key. They added height fields, with a 'cookie-cutter' style option for chopping pieces of geometry out of a scene. The also added a material mapping ability which modulates the material properties of a surface. Much like a texture map modifies the color of a surface, these maps allow them to modulate the reflectivity, specularity, and diffuse characteristics of a single surface within a map.
Hui put together a nice scene with his beads and key. He implemeted depth of field, Perlin noise, and a color surface shader. The noise gives the beads a nice change in color. He also added a 'round corner' shader to make the key have rounded edges with an underlying box model.
Alex implemented several different texturing techniques to render his knife scene. A procedural wood texture is used on the knife handles. The blades have a couple of different shaders applied to them. Both use procedural bump mapping to get realistic surface detail. The top part of the knife uses a scratch map, while the bottom uses a map of ridges.
Ren and Prashant made some very nice renderings of the pond scene using photon maps. The photon mapping technique allowed them to capture the causitics on the rockbed caused by the ripples in the water surface. The rocks were textured using a Perlin noise function, and the water surface was created using a procedural language to allow the water surface to be specified as a sum of time-varying, circular and linear cosine waves.
They also produced a water movie to demonstrate the caustics in motion.
Duncan implemented a caustics photon map to capture the caustic produced by the ring on the surface of the book. Notice the nice cartoid shaped caustic on the inside of the ring boundary.
Lee Ann modeled the dispersion/conversion effects of prisms. Her images show light diverging through a prism causing a rainbow pattern on the ground below. She also added a second prism and converged the light back together.
Mark modeled a pair of sunglasses for his project. He implemented environment mapping to get the reflections in the lenses. He also added bump mapping to get the legs of the sunglasses to look right. Another feature of his project was an angular dependence on the transmission/reflection ratio of the lenses.
Not meatballs, but metaballs. Lorenzo implemented a very nice primitive for his final project. Metaballs are defined by means of a set of control points (or key points). Each control point has associated an energy function which decreases with the distance from the key point. Given a set of control points, the resulting energy value at any point in space corresponds to the sum of the energies at that point produced by the separate key points. The surface of the metaball is the resulting isosurface (i.e. the surface made by points having same field value) for a fixed energy value.
Lorenzo also made a metaball animation to show off the properties of metaballs.
Rito modeled and rendered the Swiss Army knife for science, the Optic Wonder. His model was a hand written 6500 line CSG file. He implemented CSG cohesion to speed up the rendering process. This method takes advantage of consecutive ray coherence to speed up the CSG tree evaluations.
Andy made some very nice renderings of his stuffed owl, Missile instead of his pictured Manatee. He implemented a fur rendering algorithm to achieve the stuffed animal look. He added noise to the fur function to distribute it along the body in a more realistic manner. He also added a bias to the fur to make it point downward like it does on the stuffed animal.