AtomTrace Ray-Tracing Renderer

This is a course project from class Ray-tracing for Computer Graphics. The original fall 2013 (August – December, 2013) course project website is here. Class website is here. Some of the code bases are from cyCodeBase, provided by Cem Yuksel.

AtomTrace supports basic ray-tracing technique as well as Bounding-Volume-Hierarchy (BVH) spatial partitioning (for accelerating ray-objects intersection detection), adaptive multi-sampling anti aliasing, glossy reflection surface, soft shadow and depth of field:


Adaptive anti-aliasing and texture filtering


Soft shadow and glossy reflection surface

Besides direct illumination, AtomTrace can also render global illumination. I implemented Monte-Carlo methods and Photon Mapping:

Montel-Carlo global illumination

Monte-Carlo global illumination


Photon Mapping


The following image was originally render for the 2013 Teapot Rendering Competition in the University of Utah. Besides the teapot, the other 3D models are came from PC game Starcraft II. I used the game model of Void Ray and Carrier (Yes, I am a Starcraf II player and a big fan of Protoss!!).

If you attended the competition, or saw the image in my course webpage, the image below looks different because there was a gamma correction bug in the original image.


Teapot Rendering Competition scene. 1440×1080 resolution, with Blinn-Phong direct illumination and Photon Mapping indirect illumination.

This new image has almost the same parameters setup as the original image except it has a bigger resolution (1440×1080). Notice the floor with bump mapping, depth of field, and the caustic under the two glass balls.

In addition, I implemented a naive emmision lighting method which takes the emission texture from the original game, and just take the emission texture in BRDF(Bi-directional Reflection Distribution Function) for rendering (notice the middle silver Void Ray, its front crystal looks brighter compares to its other components, similar lights happen on the golden Carriers).

Leave a Reply

Your email address will not be published. Required fields are marked *