--- ray/src/rt/rpict.c 1991/06/18 10:27:16 1.26 +++ ray/src/rt/rpict.c 1991/08/13 12:16:34 1.31 @@ -40,6 +40,9 @@ double dstrpix = 0.67; /* square pixel distribution double dstrsrc = 0.0; /* square source distribution */ double shadthresh = .05; /* shadow threshold */ double shadcert = .5; /* shadow certainty */ +int directrelay = 0; /* number of source relays */ +int vspretest = 512; /* virtual source pretest density */ +int directinvis = 0; /* sources invisible? */ int maxdepth = 6; /* maximum recursion depth */ double minweight = 5e-3; /* minimum ray weight */ @@ -351,7 +354,7 @@ int x, y; /* pixel position */ rayorigin(&thisray, NULL, PRIMARY, 1.0); - samplendx = 3*y + x; /* set pixel index */ + samplendx = pixnumber(x,y,hresolu,vresolu); /* set pixel index */ rayvalue(&thisray); /* trace ray */ @@ -410,4 +413,16 @@ char *oldfile; return(y); writerr: error(SYSTEM, "write error in salvage"); +} + + +int +pixnumber(x, y, xres, yres) /* compute pixel index (brushed) */ +register int x, y; +int xres, yres; +{ + x -= y; + while (x < 0) + x += xres; + return((((x>>2)*yres + y) << 2) + (x & 3)); }