Implement a raytracer and simulate real-life light interactions with objects (like shadows/reflections) while experimenting with rendering objects made up of different materials (like dielectrics or specular).
In this project we:
- Render a couple of objects in flat color.
- Simulate specular/shiny surfaces with Blinn-Phong shading.
- Render shadows.
- Simulate reflective and dielectric materials using Schlick’s approximation to Fresnel’s reflection.
- Simulate the attenuation of light while passing through dielectrics with Beer's law.
- Rendering objects in flat color
- Blinn-Phong shading:
- Adding shadows:
-
Simulate reflection and refraction with specular and dielectric objects:
Reflection Refraction (Schlick’s approximation) 

-
Beer–Lambert law
Refraction (Schlick’s approximation) Refraction (Schlick’s approximation + Beer's Law) 

- Generate the object file:
mkdir build && cd buildcmake ..\makecd ../
- Execute the object file:
./bin/raytracer


