Hi,

I didn’t posted since a while and i thought may be i should write something about my progress…

My current project is a Monte Carlo bidirectional path tracer aiming to be robust and fast  as much as it can be.One of its main  goals is to familiarize myself with Monte Carlo Methods and how we can apply various variance reduction  techniques to better solve the rendering equation.Obviously,the first step that i did is to implement the Light Tracing Algorithm which is very good at handling paths of the type L***DE,the second step is to find a way to combine a Light Path with an Eye Path and this is where all my nightmares began.To do so , I have two options:

-A uniform weighting scheme which treats all the paths as if they are “equal” .A major drawback of this technique is that the estimand can  have high variance and as a consequence all of the advantages of the light tracing step will be buried under the ground.

-With variable weights (as described in [1]) ,it weights  the paths based on their importance (i.e. important paths have weights closer to 1 and vice versa).

My implementation only supports uniform weighting scheme to combine the two paths ,and as it can be seen below in the images ,a naive BDPT can perform slightly better than a PT  for diffuse  scenes.

And here is another image which compares Light Tracing (left) to Path Tracing (right):

[1] Optimally Combining Sampling Techniques for Monte Carlo Rendering, Eric Veach Leonidas J. Guibas

Advertisement