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.
Computer Graphics Stack Exchange is a question and answer site for computer graphics researchers and programmers. It only takes a minute to sign up.
Sign up to join this communityI 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.
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. 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 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 (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.