--- ray/src/rt/raycalls.c 2003/02/25 02:47:23 2.2 +++ ray/src/rt/raycalls.c 2003/10/04 14:39:53 2.8 @@ -1,5 +1,5 @@ #ifndef lint -static const char RCSid[] = "$Id: raycalls.c,v 2.2 2003/02/25 02:47:23 greg Exp $"; +static const char RCSid[] = "$Id: raycalls.c,v 2.8 2003/10/04 14:39:53 greg Exp $"; #endif /* * raycalls.c - interface for running Radiance rendering as a library @@ -78,7 +78,7 @@ static const char RCSid[] = "$Id: raycalls.c,v 2.2 200 * restarted at any point by calling ray_init() on a new * octree. * - * The call ray_save(rp) allocates and returns a buffer + * The call ray_save(rp) fills a parameter structure * with the current global parameter settings, which may be * restored at any time with a call to ray_restore(rp). * This buffer contains no linked information, and thus @@ -90,18 +90,14 @@ static const char RCSid[] = "$Id: raycalls.c,v 2.2 200 * same as the defaults for rtrace.) */ -#include "ray.h" +#include +#include "ray.h" #include "source.h" - #include "ambient.h" - #include "otypes.h" - #include "random.h" - #include "data.h" - #include "font.h" char *progname = "unknown_app"; /* caller sets to argv[0] */ @@ -120,13 +116,13 @@ int samplendx = 0; /* index for this sample */ void (*trace)() = NULL; /* trace call */ extern void ambnotify(); -void (*addobjnotify[])() = {ambnotify, NULL}; +void (*addobjnotify[8])() = {ambnotify, NULL}; int do_irrad = 0; /* compute irradiance? */ double dstrsrc = 0.0; /* square source distribution */ -double shadthresh = .05; /* shadow threshold */ -double shadcert = .5; /* shadow certainty */ +double shadthresh = .03; /* shadow threshold */ +double shadcert = .75; /* shadow certainty */ int directrelay = 2; /* number of source relays */ int vspretest = 512; /* virtual source pretest density */ int directvis = 1; /* sources visible? */ @@ -142,16 +138,16 @@ double specjitter = 1.; /* specular sampling jitter * int backvis = 1; /* back face visibility */ -int maxdepth = 6; /* maximum recursion depth */ -double minweight = 4e-3; /* minimum ray weight */ +int maxdepth = 8; /* maximum recursion depth */ +double minweight = 2e-3; /* minimum ray weight */ char *ambfile = NULL; /* ambient file name */ COLOR ambval = BLKCOLOR; /* ambient value */ int ambvwt = 0; /* initial weight for ambient value */ -double ambacc = 0.2; /* ambient accuracy */ -int ambres = 128; /* ambient resolution */ -int ambdiv = 512; /* ambient divisions */ -int ambssamp = 0; /* ambient super-samples */ +double ambacc = 0.1; /* ambient accuracy */ +int ambres = 256; /* ambient resolution */ +int ambdiv = 1024; /* ambient divisions */ +int ambssamp = 512; /* ambient super-samples */ int ambounce = 0; /* ambient bounces */ char *amblist[AMBLLEN+1]; /* ambient include/exclude list */ int ambincl = -1; /* include == 1, exclude == 0 */ @@ -167,8 +163,7 @@ char *otnm; if (ofun[OBJ_SPHERE].funp == o_default) initotypes(); /* initialize urand */ - if (urperm == NULL) - initurand(2048); + initurand(2048); /* read scene octree */ readoct(octname = otnm, ~(IO_FILES|IO_INFO), &thescene, NULL); nsceneobjs = nobjects; @@ -179,9 +174,9 @@ char *otnm; /* ready to go... */ } - void -ray_trace(RAY *r) /* trace a primary ray */ +ray_trace(r) /* trace a primary ray */ +RAY *r; { rayorigin(r, NULL, PRIMARY, 1.0); samplendx++; @@ -242,7 +237,7 @@ RAYPARAMS *rp; rp->maxdepth = maxdepth; rp->minweight = minweight; copycolor(rp->ambval, ambval); - bzero(rp->ambfile, sizeof(rp->ambfile)); + memset(rp->ambfile, '\0', sizeof(rp->ambfile)); if (ambfile != NULL) strncpy(rp->ambfile, ambfile, sizeof(rp->ambfile)-1); rp->ambvwt = ambvwt; @@ -252,7 +247,7 @@ RAYPARAMS *rp; rp->ambssamp = ambssamp; rp->ambounce = ambounce; rp->ambincl = ambincl; - bzero(rp->amblval, sizeof(rp->amblval)); + memset(rp->amblval, '\0', sizeof(rp->amblval)); ndx = 0; for (i = 0; i < AMBLLEN && amblist[i] != NULL; i++) { int len = strlen(amblist[i]); @@ -344,8 +339,8 @@ RAYPARAMS *rp; rp->do_irrad = 0; rp->dstrsrc = 0.0; - rp->shadthresh = .05; - rp->shadcert = .5; + rp->shadthresh = .03; + rp->shadcert = .75; rp->directrelay = 2; rp->vspretest = 512; rp->directvis = 1; @@ -357,18 +352,18 @@ RAYPARAMS *rp; rp->specthresh = .15; rp->specjitter = 1.; rp->backvis = 1; - rp->maxdepth = 6; - rp->minweight = 4e-3; + rp->maxdepth = 8; + rp->minweight = 2e-3; setcolor(rp->ambval, 0., 0., 0.); - bzero(rp->ambfile, sizeof(rp->ambfile)); + memset(rp->ambfile, '\0', sizeof(rp->ambfile)); rp->ambvwt = 0; - rp->ambres = 128; - rp->ambacc = 0.2; - rp->ambdiv = 512; - rp->ambssamp = 0; + rp->ambres = 256; + rp->ambacc = 0.1; + rp->ambdiv = 1024; + rp->ambssamp = 512; rp->ambounce = 0; rp->ambincl = -1; - bzero(rp->amblval, sizeof(rp->amblval)); + memset(rp->amblval, '\0', sizeof(rp->amblval)); for (i = AMBLLEN+1; i--; ) rp->amblndx[i] = -1; }