| 1 |
{ RCSid $Id$ }
|
| 2 |
{
|
| 3 |
The following calculation uses the BRTDfunc type to reproduce the
|
| 4 |
calculation used by LBL's Optics 5 program for the transmittance
|
| 5 |
and reflectance of coated glazings. This calculation is based
|
| 6 |
on fits for the angular dependence for clear and bronze-coated
|
| 7 |
glazing, and is not terribly accurate. The variables ??_clear
|
| 8 |
below should be replaced by ??_bronze in the case of the bronze
|
| 9 |
glazing model. Used with optics2rad script.
|
| 10 |
|
| 11 |
5/18/2006 Greg Ward
|
| 12 |
|
| 13 |
Arguments used for this material should look like:
|
| 14 |
|
| 15 |
mod BRTDfunc my_glazing
|
| 16 |
10 rR_clear rG_clear rB_clear
|
| 17 |
RTAU*tR_clear GTAU*tG_clear BTAU*tB_clear
|
| 18 |
0 0 0
|
| 19 |
window.cal
|
| 20 |
0
|
| 21 |
15 0 0 0
|
| 22 |
0 0 0
|
| 23 |
0 0 0
|
| 24 |
FRRHO FGRHO FBRHO
|
| 25 |
BRRHO BGRHO BBRHO
|
| 26 |
|
| 27 |
where:
|
| 28 |
FRRHO FGRHO FBRHO is front normal spectral reflectance
|
| 29 |
BRRHO BGRHO BBRHO is back normal spectral reflectance
|
| 30 |
RTAU GTAU BTAU is normal spectral transmittance
|
| 31 |
}
|
| 32 |
{ get normal reflectance }
|
| 33 |
rbase = if(Rdot,10,13); { different front and back }
|
| 34 |
Rred = arg(rbase)*CrP;
|
| 35 |
Rgrn = arg(rbase+1)*CgP;
|
| 36 |
Rblu = arg(rbase+2)*CbP;
|
| 37 |
{ transmittance coefficients }
|
| 38 |
Tclear = clip(-.0015 + RdotP*(3.355 + RdotP*(-3.840 +
|
| 39 |
RdotP*(1.460 + RdotP*.0288))));
|
| 40 |
|
| 41 |
Tbronze = clip(-.002 + RdotP*(2.813 + RdotP*(-2.341 +
|
| 42 |
RdotP*(-.05725 + RdotP*.599))));
|
| 43 |
|
| 44 |
{ reflectance coefficients }
|
| 45 |
Rclear = clip(.999 + RdotP*(-.563 + RdotP*(2.043 +
|
| 46 |
RdotP*(-2.532 + RdotP*1.054))) - Tclear);
|
| 47 |
|
| 48 |
Rbronze = clip(.997 + RdotP*(-1.868 + RdotP*(6.513 +
|
| 49 |
RdotP*(-7.862 + RdotP*3.225))) - Tbronze);
|
| 50 |
|
| 51 |
{ returned spectral transmittance }
|
| 52 |
tR_clear = CrP*Tclear;
|
| 53 |
tG_clear = CgP*Tclear;
|
| 54 |
tB_clear = CbP*Tclear;
|
| 55 |
|
| 56 |
tR_bronze = CrP*Tbronze;
|
| 57 |
tG_bronze = CgP*Tbronze;
|
| 58 |
tB_bronze = CbP*Tbronze;
|
| 59 |
{ returned spectral reflectance }
|
| 60 |
rR_clear = Rred*(1 - Rclear) + Rclear;
|
| 61 |
rG_clear = Rgrn*(1 - Rclear) + Rclear;
|
| 62 |
rB_clear = Rblu*(1 - Rclear) + Rclear;
|
| 63 |
|
| 64 |
rR_bronze = Rred*(1 - Rbronze) + Rbronze;
|
| 65 |
rG_bronze = Rgrn*(1 - Rbronze) + Rbronze;
|
| 66 |
rB_bronze = Rblu*(1 - Rbronze) + Rbronze;
|