Saturday, October 31, 2009

Stochastic Progressive Photon Mapping

It has been implemented. Also, the hashmap, which got me twice as many samples per second. The multithreading is broken with a race condition.

Unfortunitely, I can't seem to get the same results as the paper, with the glossy reflections converging even quicker than the diffuse surfaces. It seems as though my glossy reflections are converging really slow (but actually converging)

I do have a few new ideas which seem much simpler to implement than my previous voronoi cell based method (which was too complicated for me to bother spending the time not studying for school implementing) and thus fairly publishable.


  1. Speaking from a very loose grasp of the algorithms, if your glossy reflections are converging slower, might that be due to you not sending enough glossy rays rather than not enough photon passes?

    If that is the case then all you should do is send more glossy rays for each eye pass, right?

    My guess is you send one glossy reflection ray per pixel, per pass. Try 4 (for the first bounce only, otherwise your ray tree will explode ;))

  2. Well, I that would improve the quality substantially quicker, but it should theoretically converge with more photon passes using the new algorithm.

    The way I my renderer works (because of boolean objects), it is very difficult to implement rays splitting at a bounce. The current methods I am using (an algorithmic improvement as well as oversampling) seem to be working fairly well.