Sunday, June 23, 2013

Bidirectional Path Tracing and Metropolis Light Transport

During my last semester at Penn I implemented bidirectional path tracing and Metropolis light transport (MLT). My bidirectional path tracing implementation is based on Eric Veach's PhD thesis and includes all of the possible sampling techniques (including the more difficult cases such as when the light subpath intersects the sensor), complete multiple importance sampling (MIS), and a variety of other optimizations. I implemented Kelemen-style MLT on top of bidirectional path tracing. I also implemented some new BSDFs, including the Disney "principled" BSDF, and I improved my implementation of the microfacet BSDF for transmission through rough surfaces. I implemented all of these things in a separate, streamlined version of Photorealizer. Now I have two separate renderers, which I would like to merge together at some point.

I documented this project in a separate blog: http://bptmlt.blogspot.com/

An image I rendered using bidirectional path tracing in my newest renderer. See my project blog for details.

An image I rendered using bidirectional path tracing in my newest renderer. See my project blog for details.