Ray Tracer (Image Synthesis)
I built an offline ray tracer from scratch for my Image Synthesis class during the Spring 2016 semester. The implementation is based on the book, 'Ray Tracing from the Ground Up' by Kevin Suffern and professor Dr. Ergun Akleman's lectures. Developing the ray tracer from scratch let me gain in-depth knowledge on 3D Math concepts and Computer Graphics. Following are the results from some of the twelve weekly projects. The ray tracer was entirely built using C++ with all the features being incorporated into a single C++ project following object oriented design.
Texture mapping
Spherical and rectangular mapping
Normal map vs without normal map


Noise-based textures
3D Perlin noise - Turbulence function
Fractal sum
Fractional Brownian motion



Reflective surfaces
(recursion depth = 5)

Reflection influenced by normal map

Refraction
Transparent bunny

Change of refractive index
Distributed ray tracing
Depth of field


Soft shadows
(with area light)


Glossy reflection
(white sphere)

Camera painting
(controlled by an image)
Global Illumination
Global illumination with color bleeding

Ambient occlusion
(with infinite sphere)


Caustic-like reflection
