Ray/Path Tracing

Solo Project Phyisically Based Rendering CPU

The project
Two very interesting Render techniques within the field of computer graphics are Ray and Path tracing. These techniques calculate the path the light travels through the scene and rendering a Physically Based correct image. Since I wanted to improve my graphics programming knowledge and extend my knowledge of Physically Based lighting, I wanted to create a Ray and Path Tracer on the CPU. These techniques were implemented within my custom framework that was written in C++.
Ray Tracing was the first technique that I implemented where I mainly focussed on feature implementation in constrast to performance optimizations. I focussed on material and lighting types.
After the Ray Tracer was implemented, I started working on my Path Tracer implementation. In my Path Tracer, I implemented several features and BRDF's, while also doing performance optimizations, for example multithreading.

Ray Tracer Path Tracer
Point Lights with hard shadows Multithreading
Lambertian BRDF Lambertian BRDF
Blinn-Phong/Phong BRDF Blinn-Phong/Phong BRDF
Refracted and Reflected Surfaces Microfacet BRDF


Learned
In this project I mainly learned about how Physically Based lighting works and how this relates to the Ray and Path tracing Rendering techniques. The next thing that I've learned was how BRDF's work with materials and how to apply them. Apart from these techniques, I've leanred the basics of multithreading, which I've never done before this project.

Ray Tracing Path Tracing OpenGEX
C++ Multithreading


© 2017 W. A. de Graaff. All Rights Reserved.

Unity 5 / Unreal Engine 4 / CryEngine V / Visual Studio / Perforce / GitHub / SVN