<p>For offline rendering, caustics and dispersion effects (different colors of light separating, as in a prism) are usually calculated using some form of <a href="https://en.wikipedia.org/wiki/Photon_mapping">photon mapping</a>. That's a fairly expensive technique, even by the standards of offline rendering, and it falls more under the "physical simulation" side of things.</p>

<p>If you're looking for more approximate techniques suitable for real-time rendering, <a href="http://cwyman.appspot.com/papers.html">Chris Wyman's papers</a> are a good place to look. He wrote several papers on caustics between 2006 and 2009. The one to start with is <a href="http://cwyman.appspot.com/papers/i3d06_imgSpaceCaustics.pdf">Interactive Image-Space Techniques for Approximating Caustics</a> (I3D 2006), #25 on that page. This paper re-uses a GPU refraction rendering technique he developed earlier, #28 on that page, so you'll want to look at that as well for background. Later papers build on these two.</p>

<p>The basic idea of these papers is to use GPU rasterization to perform a limited, approximate analogue of photon mapping. The scene is rendered from the light's point of view, similar to a shadow map, and each pixel is treated as a photon; its refraction through transparent objects is calculated approximately (usually considering only 1 or 2 layers of refraction), and its final location is stored in a texture. Then, one can render each photon as a small splat into a "caustic map", which finally gets projected onto the scene, similar to a shadow map.</p>

CC BY-SA 3.0
2015-12-28T23:14:10.250Z
That's interesting, though I see from the photon-mapping link that what I'm asking about is how to approach Spectral Rendering.  Do you think it's reasonable to change the question so far as to update it with this term?  I still think I'm asking the same thing.
New Alexandria
CC BY-SA 3.0
2015-12-29T04:13:59.447Z
@NewAlexandria Hmm...I interpreted it as being primarily about caustics. If you're really asking about spectral rendering, that's a different question than the one I answered. :) I think it wouldn't be a bad idea to post a new question, if you want to. Maybe edit this one to be specifically about caustics?
Nathan Reed
CC BY-SA 3.0
2015-12-29T20:25:53.253Z
Thanks, [I did, here](http://computergraphics.stackexchange.com/questions/1854/how-is-spectral-rendering-handled)
New Alexandria
CC BY-SA 3.0
2015-12-28T22:57:25.847Z
2015-12-28T22:57:25.847Z
Nathan Reed
<p>I am not looking for textbooks and related how-tos, though I'm sure they can color the answer.</p>

<p>I'd like to understand how we handle the rendering of caustic effects — and particularly time-saving models, as different from physical simulation.</p>

<lighting><photo-realistic>
What is the basis of rendering light caustics?
New Alexandria
# What is the basis of rendering light caustics?

(Asked by: username_0 on 2015-12-28)

I am not looking for textbooks and related how-tos, though I'm sure they can color the answer.

I'd like to understand how we handle the rendering of caustic effects — and particularly time-saving models, as different from physical simulation.

**Tags:** lighting, photo-realistic


---

## 1 answers

### Answer by username_1 on 2015-12-28. Score: 5 | Accepted answer

For offline rendering, caustics and dispersion effects (different colors of light separating, as in a prism) are usually calculated using some form of [photon mapping](https://en.wikipedia.org/wiki/Photon_mapping). That's a fairly expensive technique, even by the standards of offline rendering, and it falls more under the "physical simulation" side of things.

If you're looking for more approximate techniques suitable for real-time rendering, [Chris Wyman's papers](http://cwyman.appspot.com/papers.html) are a good place to look. He wrote several papers on caustics between 2006 and 2009. The one to start with is [Interactive Image-Space Techniques for Approximating Caustics](http://cwyman.appspot.com/papers/i3d06_imgSpaceCaustics.pdf) (I3D 2006), #25 on that page. This paper re-uses a GPU refraction rendering technique he developed earlier, #28 on that page, so you'll want to look at that as well for background. Later papers build on these two.

The basic idea of these papers is to use GPU rasterization to perform a limited, approximate analogue of photon mapping. The scene is rendered from the light's point of view, similar to a shadow map, and each pixel is treated as a photon; its refraction through transparent objects is calculated approximately (usually considering only 1 or 2 layers of refraction), and its final location is stored in a texture. Then, one can render each photon as a small splat into a "caustic map", which finally gets projected onto the scene, similar to a shadow map.

> **Comments:**
> **username_0**: That's interesting, though I see from the photon-mapping link that what I'm asking about is how to approach Spectral Rendering.  Do you think it's reasonable to change the question so far as to update it with this term?  I still think I'm asking the same thing.  
> **username_1**: @username_0 Hmm...I interpreted it as being primarily about caustics. If you're really asking about spectral rendering, that's a different question than the one I answered. :) I think it wouldn't be a bad idea to post a new question, if you want to. Maybe edit this one to be specifically about caustics?  
> **username_0**: Thanks, [I did, here](http://computergraphics.stackexchange.com/questions/1854/how-is-spectral-rendering-handled)  

---

