--- ray/src/rt/raycalls.c 2003/02/22 02:07:29 2.1 +++ ray/src/rt/raycalls.c 2003/09/24 14:55:54 2.7 @@ -1,5 +1,5 @@ #ifndef lint -static const char RCSid[] = "$Id: raycalls.c,v 2.1 2003/02/22 02:07:29 greg Exp $"; +static const char RCSid[] = "$Id: raycalls.c,v 2.7 2003/09/24 14:55:54 greg Exp $"; #endif /* * raycalls.c - interface for running Radiance rendering as a library @@ -7,62 +7,7 @@ static const char RCSid[] = "$Id: raycalls.c,v 2.1 200 * External symbols declared in ray.h */ -/* ==================================================================== - * The Radiance Software License, Version 1.0 - * - * Copyright (c) 1990 - 2002 The Regents of the University of California, - * through Lawrence Berkeley National Laboratory. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes Radiance software - * (http://radsite.lbl.gov/) - * developed by the Lawrence Berkeley National Laboratory - * (http://www.lbl.gov/)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Radiance," "Lawrence Berkeley National Laboratory" - * and "The Regents of the University of California" must - * not be used to endorse or promote products derived from this - * software without prior written permission. For written - * permission, please contact radiance@radsite.lbl.gov. - * - * 5. Products derived from this software may not be called "Radiance", - * nor may "Radiance" appear in their name, without prior written - * permission of Lawrence Berkeley National Laboratory. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL Lawrence Berkeley National Laboratory OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - * - * This software consists of voluntary contributions made by many - * individuals on behalf of Lawrence Berkeley National Laboratory. For more - * information on Lawrence Berkeley National Laboratory, please see - * . - */ +#include "copyright.h" /* * These routines are designed to aid the programmer who wishes @@ -133,7 +78,7 @@ static const char RCSid[] = "$Id: raycalls.c,v 2.1 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 @@ -145,18 +90,14 @@ static const char RCSid[] = "$Id: raycalls.c,v 2.1 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] */ @@ -175,7 +116,7 @@ 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? */ @@ -222,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; @@ -234,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++; @@ -297,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; @@ -307,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]); @@ -412,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; }