## Forward and Backward Probabilities

Practical and theoretical implementation discussion.
sriravic
Posts: 20
Joined: Fri Jun 22, 2012 6:48 pm

### Forward and Backward Probabilities

Hello All

I've been trying to understand light transport in Veach's path integral framework. With respect to computing the pdf of the random walk path, we normally do a multiplication of all the path vertices probabilities wrto area .ie. p(x0).p(x1)...p(x_k).
But normally we go for an incremental construction of this path by using the bsdf value at each vertex to compute the next direction of random walk to take. Only the first and last vertices are normally taken wrto area ie. camera vertex and light vertex (however implicit paths are an exception). My question is this. In case of the internal vertices, the probabilities are referred to as conditional i.e p(x2 -> x3) is actually p(x2 -> x3 | x1 -> x2) assuming we take a path from x1 --> x2 --> x3. Now we normally have the pdf with which p(x2 --> x3) is sampled from the bsdf implementation. But is there a separate way to compute the conditional probability? Or is it just p(x2 --> x3 | x1 --> x2) is the same as p(x2 --> x3) assuming both are independent events?

Moreover pbrt kind of renderers have a bsdf notation in which a pdf is computed as bsdf.pdf(wi, wo) ie. for a given pair of directions, what is the probability of sampling the directions. Would a method definition like bsdf.pdf(wo) make sense i.e just sampling one output direction without any consideration for input direction. Because in all the reading material out there the probabilities are always denoted as p(wo) without any consideration for the 2nd direction component.

Thanks

MohamedSakr
Posts: 83
Joined: Thu Apr 24, 2014 2:27 am

### Re: Forward and Backward Probabilities

sriravic wrote: Moreover pbrt kind of renderers have a bsdf notation in which a pdf is computed as bsdf.pdf(wi, wo) ie. for a given pair of directions, what is the probability of sampling the directions. Would a method definition like bsdf.pdf(wo) make sense i.e just sampling one output direction without any consideration for input direction. Because in all the reading material out there the probabilities are always denoted as p(wo) without any consideration for the 2nd direction component.
this is essential to calculate correct pdf, check this https://github.com/mmp/pbrt-v2/blob/mas ... ection.cpp

for a lambert bsdf, sampling only (wo) without knowledge of (wi) is fine, as long as you check if they are at the same side "so it doesn't calculate in the wrong direction producing errors"
for other bsdfs, you MUST know (wi) to get (wo) probability "depending on how the bsdf model works"