--- ray/src/rt/ambcomp.c 1995/05/03 09:46:31 2.5 +++ ray/src/rt/ambcomp.c 1998/06/24 09:35:00 2.7 @@ -84,8 +84,9 @@ RAY *r; rayvalue(&ar); ndims--; addcolor(dp->v, ar.rcol); - if (ar.rt > FTINY && ar.rt < FHUGE) - dp->r += 1.0/ar.rt; + /* be conservative and use rot */ + if (ar.rot > FTINY && ar.rot < FHUGE) + dp->r += 1.0/ar.rot; /* (re)initialize error */ if (dp->n++) { b2 = bright(dp->v)/dp->n - bright(ar.rcol); @@ -139,12 +140,11 @@ FVECT pg, dg; dp->n = 0; if (divsample(dp, &hemi, r) < 0) goto oopsy; + arad += dp->r; if (div != NULL) dp++; - else { + else addcolor(acol, dp->v); - arad += dp->r; - } } if (ns > 0 && arad > FTINY && ndivs/arad < minarad) ns = 0; /* close enough */ @@ -170,6 +170,7 @@ FVECT pg, dg; } /* compute returned values */ if (div != NULL) { + arad = 0.0; for (i = ndivs, dp = div; i-- > 0; dp++) { arad += dp->r; if (dp->n > 1) {