953 |
|
/* Convert illuminance to irradiance */ |
954 |
|
index = GetCategoryIndex(); |
955 |
|
diff_irrad = diff_illum / CalcDiffuseIllumRatio(index); |
956 |
< |
dir_irrad = dir_illum / CalcDirectIllumRatio(index); |
956 |
> |
dir_irrad = CalcDirectIllumRatio(index); |
957 |
> |
if (dir_irrad > 0.1) |
958 |
> |
dir_irrad = dir_illum / dir_irrad; |
959 |
|
|
960 |
|
/* Calculate sky brightness and clearness */ |
961 |
|
sky_brightness = CalcSkyBrightness(); |
1131 |
|
double sspa; /* Sun-sky point angle */ |
1132 |
|
double zsa; /* Zenithal sun angle */ |
1133 |
|
|
1132 |
– |
fprintf(stderr, "Alt, azi: %f %f\n", altitude, azimuth); |
1133 |
– |
fprintf(stderr, "Perez parameters: %f %f %f %f %f\n", |
1134 |
– |
perez_param[0], perez_param[1], perez_param[2], perez_param[3], perez_param[4]); |
1135 |
– |
|
1134 |
|
for (i = 1; i < nskypatch; i++) |
1135 |
|
{ |
1136 |
|
/* Calculate sun-sky point azimuthal angle */ |
1145 |
|
|
1146 |
|
/* Calculate patch luminance */ |
1147 |
|
parr[3*i] = CalcRelLuminance(sspa, zsa); |
1150 |
– |
fprintf(stderr, "CalcRelLuminance(%f, %f) = %f\n", sspa, zsa, parr[3*i]); |
1148 |
|
if (parr[3*i] < 0) parr[3*i] = 0; |
1149 |
|
parr[3*i+2] = parr[3*i+1] = parr[3*i]; |
1150 |
|
} |