By default, all objects can cast and receive caustics, that is, photons are emitted in all directions from a point light source (and with all possible origins for a directional light source). For some scenes, this is fine - for example if a point light source is surrounded by specular surfaces. But for some scenes, it is very inefficient - for example a point light far away from a single small specular object.

To generate caustics more efficiently in such scenes, objects can be flagged such that the photons are only emitted towards certain objects and stored only on selected objects. Objects are then divided into caustic-casting ( caustic 1 flag) and caustic-receiving (caustic 2 flag), or both ( caustic 3 flag), or neither (caustic 0 flag). For example, caustics on the bottom of a swimming pool require a caustic-casting water surface and a caustic-receiving pool bottom. Objects can also be flagged caustic off, which means that caustic photons will not hit them at all (the objects will be "invisible" to caustic photons), or flagged caustic on which is the same as caustic 3. The caustic mode is an object attribute. Photons are emitted only in the direction of caustic-casting objects, and only stored on caustic-receiving objects.

To use this optimization requires that the default object caustic flag (specified in the options) is set to something different than 3 (which is the default value, enabling all objects to cast and receive caustics).

For example, the options can contain

caustic on
caustic 0

The definition of a caustic-casting object can for example begin as

object "caster"
    caustic 1
    visible shadow reflection refraction

The material of a caustic-casting object has to be mainly specular (little or no diffuse reflection), and for most materials, the sum of reflection and transparency should be close to or larger than 1. For caustics generated by refraction, the index of refraction has to be different from 1. For example, the index of refraction for water is 1.33, for glass 1.5 to 1.7, and for diamond 2.42.

Copyright © 1986, 2013 NVIDIA Corporation