May 24, 2012

Ray tracer

Ray tracer


For my 3D course, I was asked to implement a small ray-tracing software.

As usual, it can be found on github.


  • Basic ray tracing with material-specific BRDF
  • KDTrees are used to optimize intersection tests
  • Anti-aliasing
  • Hard and soft shadows
  • Ambient occlusion
  • Mirror materials
  • Prism materials
  • Path-tracing and Point-Based Global Illumination
  • Motion blur
  • Focal effect
  • Texture and normal mapping
  • Multi threaded real-time on CPU
  • Mesh transformation (rotation, scale)
  • User friendly GUI using MVC design pattern

Here is an illustration of the GUI:


More examples