Lately I have been trying to add photon mapper to my own ray tracer.
I have been taking pbrt and Jensen's book <Realistic Image Synthesis using Photon Mapping> as my primary references. In the progress of reading, I have generated a few questions.
1. I have noticed that pbrt's PM implementation differs very much from that of Jensen's. For example, in Jensen's implementation, 2 photon maps (caustic and global illumination) were built, and in pbrt's version, 3 photon maps (caustic, indirect lighting and radiance) were built. They also differ in the way they partition the light transport equation, and the way to approximate lighting.
2. The way photons were shot is also different, in pbrt, photons were shot was a uniform distribution in the hemisphere along the normal, while in jensen's version, a cosine-weighted distribution was used. I understand that in this case jensen's method wins, (importance sampling issue) I just don't understand why pbrt sample light source with a uniform distribution.
3. The way photons are scattered are also very different. Jensen used russian roulette to decide whether particles are diffusely reflected, specularly reflected or terminated, whose probability depends on surface's reflectance(which I don't know how to compute, somebody pls help). And pbrt uses a total different technique.
4. pbrt doesn't use techniques like "projection map".
So I want to discuss with your folks before I start coding, which are the best strategies to choose when implementing my own PM.
BTW, now that ompf.org is gone, what the hottest place for ray tracing geeks to ask questions?? I know that http://igad2.nhtv.nl/ompf2/index.php is nice replacement, but there really isn't many active people on it....