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
- 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: