by Yong Lee

Introduction

I created a simple room. The room has two themes: a marble and a wood desk. I used a total of fifty-three objects. It took eight parallelPipes to construct one chair; five to construct the desk; and three parallelograms to construct the room itself. In addition, there are two mirros and due to some difficulties with the light sources, I decided to not include the ceiling.

Controls

==== [INSTRUCTIONS IN RUN-TIME] ====
A) Anti-Aliasing mode
S) Soft-Shadow mode
D) Depth-of-Field mode
I) Anti-Aliasing Importance Sampling mode

Q) Anti-Aliasing and Soft-Shadow mode
W) Anti-Aliasing and Depth-of-Field mode
E) Anti-Aliasing IS and Soft-Shadow mode
F) Anti-Aliasing IS and Depth-ofField mode

g) space bar) to start ray tracing. (And then wait!)
G) to return to OpenGL render mode.
Arrow keys) change view direction (and use OpenGL).
Home/End) keys alter view distance --- resizing keeps it same view size.

==== [CHOOSE THEME] ====
0) Marble Desk
1) Wood Desk

No Distribruted Ray Tracing

The scenes below are rendered w/out any distributed ray tracings.

Anti Aliased Scenes

The scenes below are rendered from the 4x4 subpixel anti-aliasing technique. Note that borders are smooth. The approximate render time was 13 minutes.

Anti Alised + Soft Shadow

Both the anti-aliasing and soft-shadow techniques are applied to render the following scene. Again, each pixels are dividied into 4v4 subpixels. Note that the area below the desk is visible whereas the area is covered by the shadow when the soft shadow is not implemented. The approximate render time was one hour.

Depth of Field

I had to move the 15 ball back so that it lies in the focal plane. Note that 15 ball is focused and other objects are blurred. The approximate render time was 30+ minutes. (not sure.. fell asleep >_<)

Enhanced Features

I was able to reduce the anti-aliasing render time with a technique called Importance Sampling. The idea behind it is to determine which regions are important. If so, a more aggresive anti-aliasing technique is performed. Note that a "more aggresive" technique means a higher number of subpixels used.

In my algorithm, the importance of the region is determined by the color difference. Initially, the algorithm will divide the pixel into 2x2 subpixels and use the difference between the highest and the lowest color intensity level to compare against some threshold value (in our case, 0.500). If the difference is below that threshold, the average colored intensity level of 2x2 subpixels is used; otherwise, the algorithm will perfrom 4x4 subpixel anti-aliasing.

The biggest improvement is the performance. The Anti-Aliasing + Importacne Sampling took approximately 3 minutes to render whereas the 4x4 Anti-Aliasing took 13 minutes. The right scene is rendered with the importance sampling and the left is rendered w/out.

Animation

A little movie clip... composed of 28 frames. Each frame took 3 minutes to render (it's only Anti-Aliased)... took lots of work: render->photoshop->cut->flash. Uh.. so WATCH IT!