What are the recommended ways to render caustics? I am aware bidirectional path tracing and photon mapping can do this. Could someone give a brief overview of photon mapping and a good resource of where to learn about implementation?

  • $\begingroup$ You might already know this, but caustics can be rendered with regular old path tracing as well. It just takes a lot of samples to look decent. $\endgroup$
    – Alan Wolfe
    Apr 20 '17 at 6:41
  • $\begingroup$ What are the benefits of using photon mapping as opposed to regular path tracing? Is it just render times or will I be getting a significant difference in terms of how good it looks? $\endgroup$ Apr 20 '17 at 7:45
  • $\begingroup$ @ArjanSingh There is a little more to it. Using an infinite number of rays, both path tracing (unbiased) and photon mapping (consistent) will result in the same fully converged image. Photon mapping, however, is biased and will not result in the converged image on average for a finite (practical) number of rays (like path tracing) and can contain additional artefacts due to its density estimation techniques (besides the typical Monte Carlo noise). $\endgroup$
    – Matthias
    Apr 24 '17 at 6:28

First of all, you can get caustics just by Path Tracing. Caustics isn't a difficult phenomenon in computer graphics. Almost any global illumination algorithm can render it. It's just a matter of the converging speed.

While (naive) Path Tracing can render caustics, it takes a long time to clean the rendered image due to how the algorithm works. Photon Mapping makes the converging speed faster by doing some tricks on how light paths are interpolated. Bi-Directional Path Tracing on the other hand tries to make some difficult-to-sample light paths easier.

Besides the two algorithms, Metropolis Light Transport can render caustics efficiently by finding the most significant light path in the scene and exploring other possibilities around it.

Here are some good lectures on:

There is the original paper of BDPT. It's not too difficult if you can implement explicit light sampling and multiple importance sampling by your self.

Also, I recommend the book Physically Based Rendering: From Theory to Implementation. It talks about all the algorithms above and more. It is basically a must have if you want to dive deep into computer graphics.

  • $\begingroup$ Note that you need the second edition of Physically Based Rendering: From Theory to Implementation, since the third does not contain or handle pure (like Jensen defined it) Photon Mapping. $\endgroup$
    – Matthias
    Apr 24 '17 at 6:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.