Creating a path tracer
Recently I have been creating a path tracer, available to download on github.
It initially started out by following the excellent Ray Tracing in One Weekend series by Philip Shirley.
I then extended it to support:
- triangle primitives to allow the loading of obj meshes
- ability to scale primitives and rotate around x-axis
- Skyboxes
- PBR material
- Anisotropic Phong material
- Beer-Lambert law support to dielectric material
- multi-threading and SSE instructions
- Jittering support to reduce noise.
Example Scenes
Next Steps
The next step is to implement an algorithm for bidirectional path tracing which will allow for the convergence of high quality images more quickly.