A C++ ray tracer inspired by Ray Tracing in One Weekend, developed to explore advanced rendering techniques, optimize performance, and apply modern C++ design patterns.
- Modern C++ implementation with RAII and smart pointers
- Multithreaded rendering for significant performance gains
- Optimized code structure for readability and maintainability
- Supports spheres, materials, and realistic lighting
Three implementations were benchmarked using the same scene and hardware:
| Implementation | Mean Time (s) | Median Time (s) | Std. Dev (s) |
|---|---|---|---|
| Original (Shirley's example) | 77.6 | 78 | 1.02 |
| Refactored (no multithreading) | 66.0 | 66 | 0.89 |
| Refactored + Multithreading (final) | 26.0 | 26 | 1.90 |
Result: The final multithreaded version achieved ~66% faster rendering than the original implementation.