Project Type | Side Project |
Team Size | 1 |
Language | C++ |
Role | Graphgic Programmer, Engine Programmer |
About this project
Wavefront GPU Path Tracer is a ray tracing renderer. Apart from the ray tracing rendering features, a GPU implementation is developed to accelarate the efficiency of tracing. The implementation is based on the paper Megakernels considered harmful: wavefront path tracing on GPUs by Samuli Laine, Tero Karras, and Timo Aila. Depends on the features enabled, the GPU version can outperform the CPU version 3x - 10x.
The ray tracer was almost developed from scratch. Aside from the GPU acceleration, I implemeneted top-level BVH as the acceleration structure for the tracer to traverse the scene objects. A traversal inspector is also implemented to check the efficiency of a BVH structure.
The ray tracer also have the capbability to read scene files, which means that scenes are not hardcoded in the code. The user can configure a scene by using a text editor. Furthermore, several rendering features in ray tracing are implemented such as mirro, transmission, microfacet BRDF, Next Event Esitimation, Depth of Field, Gamma Correction, and Skybox.