--- ray/src/rt/rpict.c 1991/11/21 10:10:46 2.2 +++ ray/src/rt/rpict.c 1992/01/14 16:15:57 2.5 @@ -47,6 +47,9 @@ int vspretest = 512; /* virtual source pretest dens int directinvis = 0; /* sources invisible? */ double srcsizerat = .25; /* maximum ratio source size/dist. */ +double specthresh = .5; /* specular sampling threshold */ +double specjitter = 1.; /* specular sampling jitter */ + int maxdepth = 6; /* maximum recursion depth */ double minweight = 5e-3; /* minimum ray weight */ @@ -108,11 +111,11 @@ report() /* report progress */ #else report() /* report progress */ { - signal(SIGALRM, report); tlastrept = time((long *)0); sprintf(errmsg, "%ld rays, %4.2f%% done after %5.4f hours\n", nrays, pctdone, (tlastrept-tstart)/3600.0); eputs(errmsg); + signal(SIGALRM, report); } #endif @@ -277,8 +280,12 @@ int xres, y, xstep; z = pixvalue(scanline[i], i, y); if (zline) zline[i] = z; if (sd) b = sd[0] > sd[1] ? sd[0] : sd[1]; - b = fillsample(scanline+i-xstep, zline ? zline+i-xstep : NULL, - i-xstep, y, xstep, 0, b/2); + if (i <= xstep) + b = fillsample(scanline, zline, 0, y, i, 0, b/2); + else + b = fillsample(scanline+i-xstep, + zline ? zline+i-xstep : NULL, + i-xstep, y, xstep, 0, b/2); if (sd) *sd++ = nc & 1 ? bl : b; bl = b; }