Virtual Light Sources in Radiance Radiance now supports virtual light sources in planar surfaces such as mirrors. The method of virtual sources is used to create the appearance of a new source in a virtual world on the other side of the transferring surface, or "relay object." Shadow rays are then sent to these virtual sources along with the regular sources, testing not only for occlusion but also for the geometric boundaries of the virtual source path. This is necessary to yield the correct light patch shape. The method used for specifying virtual sources in Radiance is quite simple. Certain materials possess the "virtual source" attribute. When such a material modifies a planar surface, virtual light sources are created. It is an error to use a virtual source material on a non-planar surface such as a sphere. Currently, the materials "mirror," "prism1" and "prism2" have the virtual light source attribute. If multiple facing mirrors appear in a scene, the number of virtual sources can multiply quite rapidly. We therefore introduce a limit to the number of virtual source "relays" allowed, with the rendering option -dr. A setting of -dr 0 means that virtual sources will not be considered at all. Another technique that can limit the growth of virtual sources is called "virtual source presampling," which is controlled with the -dp option. Presampling tests a virtual source for visibility before adding it to the calculation, thus avoiding the inclusion of virtual sources that would never appear and the shadow testing of virtual sources that are never occluded. A presampling density of -dp 0 means that all virtual sources will be included and fully tested for shadows. This is potentially much more expensive, but it is the only way to guarantee absolute shadow accuracy at any resolution. Even without presampling, Radiance performs many checks of virtual sources before including them in the calculation. In addition to the obvious tests to insure that a source is on the correct side of the relay object, facing the proper direction and so on, Radiance also computes the solid angle that corresponds to the maximum influence of each virtual source. This greatly speeds up the direct calculation by avoiding virtual source shadow tests that could not possibly pay off. Nevertheless, virtual light sources can be quite costly, especially if there are many mirror surfaces that see each other. Presampling avoids most of the costs associated with fruitless testing, but in scenes with mutual reflections, there may still be hundreds or even thousands of virtual light sources created. Even with the solid angle limits, each virtual source must be considered at least briefly before it is rejected. It is therefore very important for efficiency to minimize the number of mirror surfaces in a scene as much as possible. In particular, do not make relay objects from many small mirror elements. Such elements should be consolidated into the largest polygons possible.