ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/doc/notes/BSDFdirections.txt
Revision: 1.1
Committed: Wed Aug 26 03:19:27 2015 UTC (9 years, 8 months ago) by greg
Content type: text/plain
Branch: MAIN
Log Message:
Created notes about BSDF directions because it's so confusing

File Contents

# User Rev Content
1 greg 1.1 A SHORT EXPLANATION OF BSDF MATRIX DIRECTIONS
2    
3     Radiance uses whichever transmission matrix is appropriate and
4     available for the direction of ray travel. If you are rendering
5     from the eye to the interior surface of a window, this typically
6     corresponds to the "backwards" light direction, which uses the
7     "Transmission Back" matrix from the XML file if present. This
8     naming is due to the unfortunate precedent WINDOW 6 uses of considering
9     the exterior of the window the "front" even though in Radiance
10     models, it corresponds to the opposite side from the window surface
11     normal.
12    
13     If there is no "Transmission Back" matrix but there is a "Transmission
14     Front" (as might be generated by WINDOW or 'genBSDF +forward
15     -backward'), Radiance will interrogate the "Front" matrix in the
16     reverse direction, relying on reciprocity working properly. The
17     reverse logic applies if the eye starts from outside (looking at
18     the back side of the window surface), in which case the preference
19     is for the "Transmission Front", using reciprocity on the "Back"
20     matrix if it's not available.
21    
22     Something similar happens using dctimestep or rmtxop, except that
23     in this case, the "Transmission Front" is *always* favored, and
24     reciprocity is used on "Transmission Back" if it isn't available.
25     The reason for this is two-fold. First, the "Transmission Front"
26     matrix is the right way around for the 3-phase method already.
27     Second, WINDOW 6 generally produces correct data for "Transmission
28     Front," but in some cases just has dummy values as a placeholder
29     for the "Transmission Back" matrix. (Someone correct me on this
30     if I am mistaken, but that's what I understood.)
31    
32     The situation is a bit simpler in the case of reflection, since one
33     cannot construct the front reflection matrix from the rear or vice
34     versa. If one of the reflectance matrices is missing during
35     rendering, then the surface gets no reflected contributions from
36     that side. The 3-phase method does not make use of reflectance,
37     so it has no bearing on dctimestep or rmtxop.