Dawn
Simple but optimized CPU path tracer based on Peter Shirley’s ray tracing series.
During the summer of 2019, I wrote a simple CPU path tracer based on Peter Shirley’s Ray Tracing in One Weekend series. You can find it on GitHub.
It supports the following features:
- Material-sampled path tracing
- Diffuse, glossy, and transparent materials
- Depth of field
- Motion blur
- Bounding volume hierarchy for intersection queries
- Solid texturing with Perlin noise
- Texture maps
- Emissive lights
- Homogeneous volumetric scattering (also used for subsurface scattering)
- Rendering GUI
Additionally, I implemented the following performance optimizations:
- Switching the guide’s OOP style to a data-oriented design
- Tiled multi-threaded rendering
- SIMD vector math and intersection logic
Results
Written on June 21, 2021