| 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));
|