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