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

Comparing ray/src/rt/rayinit.cal (file contents):
Revision 1.3 by greg, Wed Oct 9 11:36:45 1991 UTC vs.
Revision 2.9 by greg, Fri Aug 25 11:43:29 1995 UTC

# Line 9 | Line 9
9          Nx, Ny, Nz                      - surface normal
10          Px, Py, Pz                      - intersection point
11          T                               - distance from start
12 +        Ts                              - single ray (shadow) distance
13          Rdot                            - ray dot product
14          S                               - world scale
15          Tx, Ty, Tz                      - world origin
# Line 23 | Line 24
24          RdotP                           - perturbed ray dot product
25          CrP, CgP, CbP                   - perturbed material color
26  
27 +        For prism1 and prism2 types, the following are available:
28 +
29 +        DxA, DyA, DzA                   - direction to target light source
30 +
31          Library functions:
32  
33          if(a, b, c)                     - if a positive, return b, else c
# Line 66 | Line 71 | noise3d(i,x,y,z) = select(i, noise3a(x,y,z), noise3b(x
71   bound(a,x,b) : if(a-x, a, if(x-b, b, x));
72   Acos(x) : acos(bound(-1,x,1));
73   Asin(x) : asin(bound(-1,x,1));
74 < Exp(x) : if(-x-60, 0, exp(x));
74 > Atan2(y,x) : if(x*x+y*y, atan2(y,x), 0);
75 > Exp(x) : if(-x-100, 0, exp(x));
76   Sqrt(x) : if(x, sqrt(x), 0);
77  
78                          { Useful constants }
# Line 91 | Line 97 | linterp(t,p0,p1) : (1-t)*p0 + t*p1;
97  
98   noop(v) = v;
99   clip(v) = bound(0,v,1);
100 < noneg(v) = max(0,v);
101 < red(r,g,b) = r;
102 < green(r,g,b) = g;
103 < blue(r,g,b) = b;
104 < grey(r,g,b) = .3*r + .59*g + .11*b;
100 > noneg(v) = if(v,v,0);
101 > red(r,g,b) = if(r,r,0);
102 > green(r,g,b) = if(g,g,0);
103 > blue(r,g,b) = if(b,b,0);
104 > grey(r,g,b) = noneg(.263*r + .655*g + .082*b);
105   clip_r(r,g,b) = bound(0,r,1);
106   clip_g(r,g,b) = bound(0,g,1);
107   clip_b(r,g,b) = bound(0,b,1);
108 < clipgrey(r,g,b) = bound(0,grey(r,g,b),1);
108 > clipgrey(r,g,b) = min(grey(r,g,b),1);
109  
110   dot(v1,v2) : v1(1)*v2(1) + v1(2)*v2(2) + v1(3)*v2(3);
111   cross(i,v1,v2) : select(i,      v1(2)*v2(3) - v1(3)*v2(2),
# Line 135 | Line 141 | turbulencec(x,y,z,s) = if( s-1.01, 0,
141  
142   un2`private(t) : t - (2.515517+t*(.802853+t*.010328))/
143                  (1+t*(1.432788+t*(.189269+t*.001308))) ;
144 < un1`private(p) : un2`private(sqrt(log(1/p/p))) ;
144 > un1`private(p) : un2`private(sqrt(-2*log(p))) ;
145  
146 < unif2norm(p) : if( .5-p, un1`private(p), -un1`private(1-p) ) ;
146 > unif2norm(p) : if( .5-p, -un1`private(p), un1`private(1-p) ) ;
147  
148   nrand(x) = unif2norm(rand(x));
149  
150                          { Local (u,v) coordinates for planar surfaces }
151   crosslen`private = Nx*Nx + Ny*Ny;
152 <                        { U is distance from origin in XY-plane }
152 >                        { U is distance from projected Z-axis }
153   U = if( crosslen`private - FTINY,
154                  (Py*Nx - Px*Ny)/crosslen`private,
155                  Px);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines