codesavory / very-own-path-tracer

Path tracer built from scratch in C++

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

very-own-path-tracer

Path tracer built from scratch in C++.

This path tracer was built using smallpt by Kevin Beason and the explanation slides by David Cline. This is very primitive path tracer with support to only Spheres and explicit lighting.

Learn more on my blog post in medium, explaining the theory and working of a path tracer.

Renders from the Path Tracer -

4samples 100samples
4 samples render of smallpt 100 samples render of smallpt
500samples 5000samples
500 samples render of smallpt 5000 samples render of smallpt

Future works -

  1. Importance Sampling to probabilistically select a new ray to converge correctly to outgoing luminance on the surface point.
  2. Bidirectional Path Tracing that combines two distinctive approaches to sample the integral in the same algorithm to obtain faster convergence of the integral.
  3. Volumetric Path Tracing that extends the path tracing method with the effect to light scattering.
  4. Metropolis Light Transport a method of perturbing previously found paths in order to increase performance.

About

Path tracer built from scratch in C++


Languages

Language:C++ 94.1%Language:C 5.9%