114 |
|
|
115 |
|
setcolor(ndp->cthru, .0, .0, .0); /* starting assumption */ |
116 |
|
|
117 |
+ |
if (!(ndp->pr->crtype & (SPECULAR|AMBIENT|SHADOW))) |
118 |
+ |
return; /* simply don't need to know */ |
119 |
+ |
|
120 |
|
if (ndp->pr->rod > 0) |
121 |
|
dfp = (ndp->sd->tf != NULL) ? ndp->sd->tf : ndp->sd->tb; |
122 |
|
else |
233 |
|
if (ec) |
234 |
|
goto baderror; |
235 |
|
/* check indirect over-counting */ |
236 |
< |
if ((ndp->thick != 0 || bright(ndp->cthru) > FTINY) |
237 |
< |
&& ndp->pr->crtype & (SPECULAR|AMBIENT) |
238 |
< |
&& (vsrc[2] > 0) ^ (ndp->vray[2] > 0)) { |
236 |
> |
if (ndp->pr->crtype & (SPECULAR|AMBIENT) |
237 |
> |
&& (vsrc[2] > 0) ^ (ndp->vray[2] > 0) |
238 |
> |
&& bright(ndp->cthru) > FTINY) { |
239 |
|
double dx = vsrc[0] + ndp->vray[0]; |
240 |
|
double dy = vsrc[1] + ndp->vray[1]; |
241 |
|
if (dx*dx + dy*dy <= (4./PI)*(omega + tomega + |