Wednesday, December 17, 2014

Winner of U of Utah Ray Tracing class image contest

Yesterday I attended Cem Yuksel's end of semester image contest from his ray tracing class.  The images were all very impressive (it's clearly a good class... see the link above) and the winner (by Laura Lediaev) I found so impressive I asked her if I could post it here.  Here's her description:

This is a fun scene with candy. There are two main components to this scene - the glass teapot, and the candies. I spent over 30 hours creating this teapot practically from scratch. I started with the Bezier patch description, which I used to create a mesh, and went to work duplicating surfaces, shrinking them to create the inner surfaces, doing some boolean work for cutting out holes, then fusing together all the seams vertex by vertex. The candies started out as a single candy prototype which I sculpted starting from a cube. I then created a huge array of candy copies and used a dynamics simulation to drop the candies into one teapot, and onto the ground in front of the other teapot. The backdrop is just a ground with a single wall (a.k.a. an infinite plane). I have two area lights, and an environment image which is creating the beige color of the ground and some interesting reflections. Can you spot the reflection of a tree in the left teapot handle? The challenge with rendering this scene is all the fully specular paths, which are rays that connect the camera to a light while only hitting specular surfaces such as glass or mirrors. The only way to do this using the rendering methods that we learned in the class is brute force path tracing which takes an extraordinary amount of time. The image has roughly 30,000 samples per pixel.


Unknown said...

I wonder what machine did she use and how long did it take to render. 30k samples per pixel is insane. Sounds like a production level film.

Laura Lediaev said...

I was determined to win this contest so I went seriously overboard with the compute nodes. I used every computer I could get my hands on at both SCI, CS, and CADE. No kidding, I used over a thousand cores for three days. I'm not saying this is a good thing. I'd say that my renderer's greatest flaw is inefficiency. Caustics were taking too long to converge, as well as all those nice reflections of the candies on the glass, and the reflections of the lights themselves off the glass. In the end I just hoped that the artistic qualities would make up for any graininess.

Unknown said...

That is brilliant! Haven't been think about doing in this way. I was wondering how possible a personal computer doing a ray tracing class project can handle 30k samples per pixel.