ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/gen/illum.cal
(Generate patch)

Comparing ray/src/gen/illum.cal (file contents):
Revision 2.1 by greg, Tue Nov 12 17:05:10 1991 UTC vs.
Revision 2.2 by greg, Mon Aug 10 15:55:12 1992 UTC

# Line 3 | Line 3
3   {
4          Coordinate computations for mkillum output.
5  
6 <        There are no arguments for the spherical case:
6 >        For the spherical case, A1-A3 is the value at the positive pole,
7 >        A4-A6 is the value at the negative pole, and A7 is the pole influence:
8  
9          il_alt          - Altitude (1 to -1) for spherical coordinates
10          il_azi          - Azimuth (0 to 2*PI) for sphere
11  
12 <        For the hemispherical case, A1-A9 are the unit vectors for the
12 >        For the hemispherical case, A1-A3 and A4 are the pole value and
13 >        influence, respectively, and A5-A13 are the unit vectors for the
14          hemisphere's coordinate system:
15  
16          il_alth         - Altitude (1 to 0) for hemispherical coordinates
17          il_azih         - Azimuth (0 to 2*PI) for hemisphere
18   }
19  
20 + norm_rad(r) : if( r, r, r+2*PI );
21 +                                        { sphere coordinates }
22   il_alt = Dz;
23   il_azi = norm_rad(atan2(Dy, Dx));
24  
25 < il_alth = sq(-Dx*A7-Dy*A8-Dz*A9);
26 < il_azih = norm_rad(atan2(-Dx*A4-Dy*A5-Dz*A6, -Dx*A1-Dy*A2-Dz*A3));
25 > s_val(v, vN, vS) = noneg(if( il_alt-A7,
26 >                        linterp((il_alt-A7)/(1-A7), v, vN),
27 >                        if ( -il_alt-A7,
28 >                                linterp((-il_alt-A7)/(1-A7), v, vS),
29 >                                v ),
30 >                        v ));
31 >                                        { sphere values }
32 > s_red(r,g,b) = s_val(r, A1, A4);
33 > s_grn(r,g,b) = s_val(g, A2, A5);
34 > s_blu(r,g,b) = s_val(b, A3, A6);
35 > s_gry(r,g,b) = s_val(grey(r,g,b), grey(A1,A2,A3), grey(A4,A5,A6));
36  
37 < norm_rad(r) = if( r, r, r+2*PI );
37 >                                        { hemisphere coordinates }
38 > il_alth = sq(-Dx*arg(11)-Dy*arg(12)-Dz*arg(13));
39 > il_azih = norm_rad(atan2(-Dx*arg(8)-Dy*arg(9)-Dz*arg(10),
40 >                        -Dx*arg(5)-Dy*arg(6)-Dz*arg(7)));
41 >
42 > h_val(v, vN) = noneg(if( il_alth-A4, linterp((il_alth-A4)/(1-A4), v, vN), v ));
43 >                                        { hemisphere values }
44 > h_red(r,g,b) = h_val(r, A1);
45 > h_grn(r,g,b) = h_val(g, A2);
46 > h_blu(r,g,b) = h_val(b, A3);
47 > h_gry(r,g,b) = h_val(grey(r,g,b), grey(A1,A2,A3));

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines