Monday, April 23, 2007

Ray Tracing - Project 10

Design Choices

I decided to model a chess set for my image. All pieces in the scene are modeled with triangles except the board (a box) and the ominous red sphere. All the chess pieces were modeled using Blender by myself and exported to the OBJ format, for which I wrote a mesh parser.

The board is rendered using two different Perlin noises and rendered with soft shadows by displacing the light position using a spherical distribution and many samples per pixel. The chess pieces have the same two materials as the board, so I tried to place them on opposing colors so the Perlin noise wouldn't match up perfectly.

This project took me a long time (close to twenty hours, I imagine), mostly because I took so long trying to decide what scene I wanted. I decided to do a chess theme since it gave me a lot of control over how I wanted to lay it out, and I didn't want to do anything too terribly abstract (like a bunch of dragons staring at a heightfield). The final images took around 30 minutes to render using 25 samples per pixel.

Extra Credit

My second Monte Carlo effect was embossed reflections. This was added to materials using a Russian roulette method, where either the diffuse color or the reflected color would be calculated based on the ratio assigned between the two. The embossed reflections were generated by perturbing the normal over a uniform disk. The disk size determined the amount of blurriness.

I originally blended the two colors together, but that introduced a number of artifacts. Switching to the Russian roulette method, these dropped significantly, but I still see an occasional blue splotch. Also, the Russian roulette method looks horrible at low-sampling rates since every other pixel might have a different shading calculation.

This is my final rendered scene using soft shadows and embossed reflections. It took about forty minutes to run using 25 samples per pixel


Code:tracer.tar.bz2

5 comments:

Edevaldo said...

Fala rapaz é vc mesmo? Aqui e o Edevaldo Jr (Elder MOreira) Vc sumiu manda email. Abraços!

Sunny said...

I somehow stumbled upon your blog and am highly impressed by it... Have read most of your blogs, as i'm also very much interested in the field of Computer Graphics and animation. Just wanted to point out that the code you have supplied is not download able.Showing some error.

Joshua said...

Hey Sunny,

I lost the code when I cleaned out that directory.

If you can go to my other post, however, and get the lecture notes for the course I was in. It was a very practical course with lots of code snippets and tips. It's good for someone writing their first ray tracer.

http://strattonbrazil.blogspot.com/2008/12/ray-tracing-basics.html

If you're new to computer graphics, let me know of anything that might be interesting to post or something confusing to a novice.

Sunny said...

Hi Joshua,
Yeahh... you guessed right, i'm a novice to computer graphics... as in i'm in 6th semester of bachelor's degree! actually i'll be having an interview with dreamworks in after a few days. They take interns from India. So thats why was reading about ray tracing...

Sunny said...

Actually i'm doing an elementary course only in computer graphics,at college level... and wanted to see how really these things works... about which i have only theoriitical idea...
I read thru the ray tracing link u gave me.. thnx...