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. |