1 |
{ RCSid: $Id: glaze1.cal,v 2.1 2003/02/22 02:07:23 greg Exp $ } |
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(-5.85*abs(Rdot)) - exp(-5.85); |
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)); |