ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/gen/glaze1.cal
Revision: 2.1
Committed: Sat Feb 22 02:07:23 2003 UTC (21 years, 1 month ago) by greg
Branch: MAIN
CVS Tags: rad3R5
Log Message:
Changes and check-in for 3.5 release
Includes new source files and modifications not recorded for many years
See ray/doc/notes/ReleaseNotes for notes between 3.1 and 3.5 release

File Contents

# User Rev Content
1 greg 2.1 { RCSid: $Id$ }
2     {
3     glaze1.cal - single-pane fritted and low-E glazings
4    
5     Uses BRTDfunc type to get correct behavior.
6     Oct. 2002 Greg Ward
7    
8     Material parameters for fritted glazing are:
9    
10     arg(10) - orientation (1 == glass front)
11     arg(11) - fractional coverage
12    
13     Parameters for low-E glazing are:
14     arg(10) - orientation (1 == glass front)
15     arg(11) - glass-side reflectance (red)
16     arg(12) - glass-side reflectance (green)
17     arg(13) - glass-side reflectance (blue)
18     arg(14) - coating-side reflectance (red)
19     arg(15) - coating-side reflectance (green)
20     arg(16) - coating-side reflectance (blue)
21     arg(17) - transmittance (red)
22     arg(18) - transmittance (green)
23     arg(19) - transmittance (blue)
24     }
25     { Fresnel approximation }
26     fresne = exp(-6*abs(Rdot)) - exp(-6);
27     fresne_refl(r) = r + fresne*(1 - r);
28     fresne_trans(t) = t*(1 - fresne);
29     { glass reflectance and transmittance }
30     glass_refl = fresne_refl(0.076);
31     glass_trans = fresne_trans(0.883);
32    
33     clear_side = arg(10) * Rdot; { ray coming from plain side? }
34    
35     frac_glass = 1 - arg(11); { glass coverage }
36    
37     { frit specular components }
38     sr_frit_r = if(clear_side, glass_refl, frac_glass*glass_refl);
39     sr_frit_g = if(clear_side, glass_refl, frac_glass*glass_refl);
40     sr_frit_b = if(clear_side, glass_refl, frac_glass*glass_refl);
41     st_frit_r = frac_glass*glass_trans;
42     st_frit_g = frac_glass*glass_trans;
43     st_frit_b = frac_glass*glass_trans;
44    
45     { low-E specular components }
46     sr_lowE_r = fresne_refl(if(clear_side, arg(11), arg(14)));
47     sr_lowE_g = fresne_refl(if(clear_side, arg(12), arg(15)));
48     sr_lowE_b = fresne_refl(if(clear_side, arg(13), arg(16)));
49     st_lowE_r = fresne_trans(arg(17));
50     st_lowE_g = fresne_trans(arg(18));
51     st_lowE_b = fresne_trans(arg(19));