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