--- ray/src/util/glaresrc.c 1991/03/18 12:15:40 1.1 +++ ray/src/util/glaresrc.c 1991/03/18 16:06:53 1.3 @@ -52,26 +52,27 @@ analyze() /* analyze our scene */ for (v = vsize; v >= -vsize; v--) { getviewspan(v, spanbr); left = hsize + 1; - for (h = -hsize; h <= hsize; h++) + for (h = -hsize; h <= hsize; h++) { if (spanbr[h+hsize] < 0.0) { /* off view */ if (left < h) { - addsrcspan(newspan(left,h-1,v,spanbr)); + addsrcspan(newspan(left,h,v,spanbr)); left = hsize + 1; } continue; } if (spanbr[h+hsize] > threshold) { /* in source */ - if (left >= h) + if (left > h) left = h; } else { /* out of source */ if (left < h) { - addsrcspan(newspan(left,h-1,v,spanbr)); + addsrcspan(newspan(left,h,v,spanbr)); left = hsize + 1; } addindirect(h, spanbr[h+hsize]); } + } if (left < h) - addsrcspan(newspan(left,h-1,v,spanbr)); + addsrcspan(newspan(left,h,v,spanbr)); close_sources(v); } close_allsrcs(); @@ -87,7 +88,7 @@ double br; register int i; if (h <= -hlim) { /* left region */ - d = (double)(h+hlim)/SAMPDENS; + d = (double)(h+hlim)/sampdens; if (d <= -1.0+FTINY) return; tanb = d/sqrt(1.0-d*d); @@ -101,7 +102,7 @@ double br; return; } if (h >= hlim) { /* right region */ - d = (double)(h-hlim)/SAMPDENS; + d = (double)(h-hlim)/sampdens; if (d >= 1.0-FTINY) return; tanb = d/sqrt(1.0-d*d); @@ -152,10 +153,12 @@ comp_thresh() /* compute glare threshold */ fprintf(stderr, "%s: threshold zero!\n", progname); exit(1); } - if (verbose) + if (verbose) { + pict_stats(); fprintf(stderr, "%s: threshold set to %f cd/m2 from %d samples\n", progname, threshold, nsamps); + } } @@ -262,6 +265,7 @@ register struct source *sp; sp->dom = 0.0; sp->dir[0] = sp->dir[1] = sp->dir[1] = 0.0; sp->brt = 0.0; + n = 0; for (ss = sp->first; ss != NULL; ss = ss->next) { sp->brt += ss->brsum; n += ss->r - ss->l; @@ -285,5 +289,6 @@ register struct source *sp; if (verbose) fprintf(stderr, "%s: found source at (%f,%f,%f), solid angle %f, brightness %f\n", - progname, sp->dir[0], sp->dir[1], sp->dir[2], sp->brt); + progname, sp->dir[0], sp->dir[1], sp->dir[2], + sp->dom, sp->brt); }