106 |
|
{0, -1.6}, |
107 |
|
{1.6, 0}, |
108 |
|
}; |
109 |
< |
const double peak_over = 2.0; |
109 |
> |
const double peak_over = 1.5; |
110 |
|
SDSpectralDF *dfp; |
111 |
|
FVECT pdir; |
112 |
|
double tomega, srchrad; |
142 |
|
goto baderror; |
143 |
|
cvt_sdcolor(vcol, &sv); |
144 |
|
addcolor(vsum, vcol); |
145 |
< |
if (bright(vcol) > bright(vpeak)) { |
145 |
> |
if (sv.cieY > bright(vpeak)) { |
146 |
|
copycolor(vpeak, vcol); |
147 |
|
VCOPY(pdir, tdir); |
148 |
|
} |
274 |
|
if (tomega2 < .12*tomega) |
275 |
|
continue; /* not safe to include */ |
276 |
|
cvt_sdcolor(csmp, &sv); |
277 |
< |
/* weight average by Y */ |
278 |
< |
scalecolor(csmp, sv.cieY); |
277 |
> |
|
278 |
> |
if (sf < 2.5*tsr) { /* weight by Y for small sources */ |
279 |
> |
scalecolor(csmp, sv.cieY); |
280 |
> |
wtot += sv.cieY; |
281 |
> |
} else |
282 |
> |
wtot += 1.; |
283 |
|
addcolor(cval, csmp); |
280 |
– |
wtot += sv.cieY; |
284 |
|
} |
285 |
|
if (wtot <= FTINY) /* no valid specular samples? */ |
286 |
|
return(0); |