ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/lib/retrorefl.cal
Revision: 1.2
Committed: Tue Mar 18 17:30:17 2003 UTC (21 years, 2 months ago) by greg
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +0 -0 lines
State: FILE REMOVED
Log Message:
Decided to move ray/lib directory into non-CVS distribution

File Contents

# Content
1 {
2 Glass Bead Retroreflector BRDF
3
4 4/25/2002 Greg Ward
5
6 Use with metfunc type, where A4 is estimated total retroreflection
7 (doesn't need to be accurate) and A5 is the specific intensity
8 (candelas per lux per square meter) at normal incidence and a
9 0.5 degree observation angle. If you have a value at some
10 other angle, simply divide it by obs_mult1(obs_meas_deg)
11 to get the equivalent value at 0.5 degrees.
12
13 Do not use this file with prismatic retroreflectors!
14 }
15 ldot(x,y,z) = max(cos(89.5*DEGREE), Nx*x + Ny*y + Nz*z);
16 normk = A5 / grey(A1,A2,A3) / A4;
17 normf(x,y,z) = normk / ldot(x,y,z);
18
19 { fitted function of observation angle }
20 { based on ray simulation of glass bead }
21 obs_mult1(a) = if(.5-a,
22 cos(PI/2/.5*a)*3 + 1,
23 if(20-a,
24 .07/sin(7.6*PI/180*a) + .02,
25 .157/(a-19)
26 )
27 );
28 obs_mult(x,y,z) = obs_mult1(Acos(-Dx*x-Dy*y-Dz*z)/DEGREE);
29
30 { use the following when normal value is unknown }
31 retro_paint(x,y,z) = normf(x,y,z) * obs_mult(x,y,z);
32
33 { fitted function of entrance angle }
34 { based on 3M sheet reflector }
35 ent_mult1(a) = exp(-a*a/2220);
36 ent_mult(x,y,z) = ent_mult1(Acos(ldot(x,y,z))/DEGREE);
37
38 { use the following for sheet reflectors }
39 retro_sheet(x,y,z) = normf(x,y,z) * obs_mult(x,y,z) * ent_mult(x,y,z);