Ray tracing

This implementation does the raytracing and generates image in the CPU and then sends the whole thing ready to render to the GPU.

LambertianFinalPlentyRefractionReflection
Companion

The ray tracer supports:

  • Phong model ilumination
  • Pure lambertian objects
  • Hard shadows
  • Reflection / Refraction combinable following Snell’s law
  • Anti-alising
  • Only handles spheres and boxes (Could be easily expanded by creating a child of Object overriding intersection algorithm by, for instance, something that handles convex hulls )

Later I investigated a bit on sub-surface scattering, mainly by reading this paper, and tried to improvise a simpler version myself. Leading to these results:

Render4Render2Render1Extra3