ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/test/renders/diskcoords.cal
Revision: 1.3
Committed: Mon Dec 3 19:49:11 2018 UTC (5 years, 5 months ago) by greg
Branch: MAIN
CVS Tags: rad5R4, rad5R3, HEAD
Changes since 1.2: +1 -3 lines
Log Message:
Added README file with minor corrections to others

File Contents

# Content
1 { RCSid $Id: diskcoords.cal,v 1.2 2018/12/01 02:06:05 greg Exp $ }
2 {
3 Shirley-Chiu coordinate calculation for BRDF data types (plasdata, metdata)
4 }
5 { Compute square position from disk coordinates }
6 norm_radians(p) : if(-p - PI/4, p + 2*PI, p);
7 idr(idx,idy) = sqrt(idx*idx + idy*idy);
8 idp(idx,idy) = norm_radians(atan2(idy, idx));
9
10 idrgn(idp) = floor((idp + PI/4)/(PI/2)) + 1;
11
12 square_a(idr,idp) = select(idrgn(idp),
13 idr,
14 (PI/2 - idp)*idr/(PI/4),
15 -idr,
16 (idp - 3*PI/2)*idr/(PI/4));
17
18 square_b(idr,idp) = select(idrgn(idp),
19 idp*idr/(PI/4),
20 idr,
21 (PI - idp)*idr/(PI/4),
22 -idr);
23
24 square_x(idx,idy) = (square_a(idr(idx,idy),idp(idx,idy)) + 1)/2;
25 square_y(idx,idy) = (square_b(idr(idx,idy),idp(idx,idy)) + 1)/2;
26
27 inc_sqx = square_x(-Idx,-Idy); { Negative because of Klems reversal }
28 inc_sqy = square_y(-Idx,-Idy);
29
30 sqx_in(sx,sy,sz) = inc_sqx; { Only a function of incident ray direction }
31 sqy_in(sx,sy,sz) = inc_sqy;
32
33 sqx_out(sx,sy,sz) = square_x(Ldx(sx,sy,sz),Ldy(sx,sy,sz));
34 sqy_out(sx,sy,sz) = square_y(Ldx(sx,sy,sz),Ldy(sx,sy,sz));