CS 488 final project Extended ray tracer

Objectives:

0. Multithreading

My extra objective on A4 was multithreading. These graphs show the rendering time, regarding the number of threads used.

1. More primitives

New primitives were implemented: The cylinder and the cone.


2. Texture mapping

The textures were found on the Internet and are acknowleged in the manual.


3. Transparency, reflection

From the left to the right: image with only transparency, with only reflection and with both reflection and transparency.


4. Bump mapping

The bump mapping was realized by using an heightmap.


5. Supersampling

Supersampling was implemented by throwing 9 rays by pixel instead of 1, and the pixel color is the average of the 9 colors.


6. Binary Space Partitioning


image sizewith BSPtime (min)
150x150 no 5.2
yes 2.38
250x250 no 14.5
yes 6.33
500x500 yes 23.5

Theses numbers are the time used to render the rabbit mesh (69666 triangles) with and without the BSP tree. The raytracer was launched on the gl09 computer with 6 threads.


7. Field generation


8. Constructive Solid Geometry


9. Caustics

The implementation of caustics with Photon mapping has been aborted.


10. Unique scene

It tooks 30 min to render the final scene on my personnal laptop, for a 2048x2048 pixels image, with supersampling and 4 threads.