Friday, May 4, 2012

Bidirectional Path Tracing Experiments

I finished a preliminary implementation of bidirectional path tracing with naive (aka uniform) weighting today. (MIS Bidirectional to be done later... after I can confirm the naive version works). Although the images look quite close to the 'reference' renders (unidirectional), they're still either brighter or darker. I'm frankly not sure if my reference renders are even correct now.

One thing I did notice is that my bidirectional renders have either less or more indirect light than the reference ones. I have confirmed that my direct lighting (eye - vertex - light) matches, so I'll probably single out the indirect and look at the differences.

Bidirection PT with light pointing down
Reference with light pointing down
Reference with light pointing up
Bidirection PT with light pointing up
Also of note is that the Veach paper mentions that there are k+2 'paths' for a given 'path length', where path length is # eye verts + # light verts + 1. (Note that the points on the lens/light surface count as verts). I'm not quite sure if this is correct, but since my lens - eye vert 1 path is fixed, I think I only have k+1 possible paths.

Another thing I'm uncertain about is whether I'm suppose to divide my light throughput by the uniform hemispheric sampling PDF (1/pi).

No comments:

Post a Comment