Skip to content

A C++ ray tracer built to explore rendering algorithms, performance optimization, and modern C++ practices. Implements multithreaded rendering, realistic lighting, and modular design for spheres and materials.

Notifications You must be signed in to change notification settings

AR-937/ray-tracer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ray Tracer

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.

Features

  • 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

Performance

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
raytracer_performance

Result: The final multithreaded version achieved ~66% faster rendering than the original implementation.

Demo

ray tracer

About

A C++ ray tracer built to explore rendering algorithms, performance optimization, and modern C++ practices. Implements multithreaded rendering, realistic lighting, and modular design for spheres and materials.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published