Iman Sadeghi 's Homepage
Bi Direcional Path Tracing

Welcome to Iman Sadeghi 's Bi Directional Path Tracing Project Homepage!

This is the second project for CSE272 "Advanced Appearance Modeling" taught by Prof. Henrik Wann Jensen in Fall 2007.

1.Project Description
In this project I focused on an advanced rendering technique called Bi Directional Path Tracing with Multiple Importance Sampling this technique somehow combines the classic Path Tracing algorithm with Light Tracing algorithm and exploits the benefits of both techniques. First I start by some rendered images and then I will describe some technical details.

2. Rendered Images:
2.1 Bi Directional Path Tracing with Multiple Importance Sampling

Diffuse Box - Caustics Scene

Diffuse Spheres - Empty Box

2.2 Naive Bi Directional Path Tracing with average weighting scheme

Diffuse Box - Caustics Scene


 

3. Technical Details:
3.1. Modeling
For Modeling I used try and error method to make the my Cornell Box look like the original Cornel Box. After spending hours working with Maya I made my box and it looked good. Then I realized that the data about the Cornell Box is available online! Which means I could save hours by just plugging in bunch of numbers! Anyways I think it was a good modeling practice and here you can see a comparison between my try-and-error-made model with the original Cornell Box.

 

Original Cornell Box (Photograph) - My Cornell Box (Model) - My Cornell Box (Rendered)


 


3.2. Rendering
Description of Path Tracing, Light Tracing and Bi-directional Path Tracing: Images are taken from [5]
 

Path Tracing Path Tracing with next event estimate
Light Tracing Light Tracing with next event estimate



Bi Directional Path Tracing

For the Multiple Importance Sampling part we have to assign the weights of the paths relative to the probobility of having that path in our sampling scheme. At the end the estimated flux per pixel would be:


The only criteria here is that all the weights for paths of a given length sum up to one:



Any weighting that satisfies this condition would be an unbiased scheme which will converge to the final solution by increasing the number of samples.

For the Naive Bi Directional Path Tracing I used equal weights (1/n) for all the Wij of the same length. For implementing the Importance Sampling we should satisfy the following condition:

 

Bi-Directional Path Tracing with Multiple Importance Sampling

Naive Bi-Directional Path Tracing

Path Tracing

Light Tracing



 

4. Comparisons

4.1. Between Naive Bidirectional Path tracing and the one with Multiple Importance Sampling





Left: Naive Bidirectional Path Tracing with average weighting scheme between all the paths with same length
Center: Multiple Important Sampling with no special considerations
Right: Multiple Importance Sampling with considering special case of very short connecting path between eye-path and light-path.
 

4.2. Between Bidirectional Path Tracing, Path Tracing, Light Tracing and Photon Mapping

Here I will compare the results of my Bidirectional Path Tracing (BDPT) with Path Tracing (PT), Light Tracing (LT) and Photon Mapping (PM).

Advantages:
Photon Mapping+
Path Tracing +
Light Tracing +
Bi directional Path Tracing
+

Disadvantages:
Photon Mapping+
Path Tracing +
Light Tracing +
Bi directional Path Tracing +

5.Refrences
[1] Lafortune et al., Bidirectional Path Tracing", Compugraphics 1993
[2] Veach and Guibas, Optimally combining sampling techniques for Monte Carlo rendering, SIGGRAPH 1995
[3] Veach et al., Metropolis Light Transport, SIGGRAPH 1997
[4] Veach et al., Robust Monte Carlo Methods for Light Transport Simulation, Chapter 9 and Chapter 10
[5] Lafortune, Mathematical Models for Light Transport Simulation