ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/rt/raycalls.c
(Generate patch)

Comparing ray/src/rt/raycalls.c (file contents):
Revision 2.9 by schorsch, Tue Mar 30 16:13:01 2004 UTC vs.
Revision 2.14 by greg, Wed Jun 15 15:36:52 2005 UTC

# Line 23 | Line 23 | static const char      RCSid[] = "$Id$";
23   *  sort of context, so it is impossible to simultaneously run
24   *  this library on multiple scenes or in multiple threads.
25   *  You get one scene and one thread, and if you want more, you
26 < *  will have to go with the process model used by the programs
27 < *  gen/mkillum, hd/rholo, and px/pinterp.  Finally, unrecoverable
28 < *  errors result in a call to the application-defined function
29 < *  quit().  The usual thing to do is to call exit().
26 > *  will have to go with the process model defined in raypcalls.c.
27 > *  Finally, unrecoverable errors result in a call to the application-
28 > *  defined function quit().  The usual thing to do is to call exit().
29   *  You might want to do something else instead, like
30   *  call setjmp()/longjmp() to bring you back to the calling
31   *  function for recovery.  You may also wish to define your own
# Line 91 | Line 90 | static const char      RCSid[] = "$Id$";
90   */
91  
92   #include <string.h>
93 + #include <time.h>
94  
95   #include  "ray.h"
96   #include  "source.h"
# Line 119 | Line 119 | void   (*addobjnotify[8])() = {ambnotify, NULL};
119  
120   int     do_irrad = 0;                   /* compute irradiance? */
121  
122 + int     rand_samp = 0;                  /* pure Monte Carlo sampling? */
123 +
124   double  dstrsrc = 0.0;                  /* square source distribution */
125   double  shadthresh = .03;               /* shadow threshold */
126   double  shadcert = .75;                 /* shadow certainty */
# Line 164 | Line 166 | ray_init(                      /* initialize ray-tracing calculation */
166                  initotypes();
167                                          /* initialize urand */
168          initurand(2048);
169 +        srandom(rand_samp ? (long)time(0) : 0L);
170                                          /* read scene octree */
171          readoct(octname = otnm, ~(IO_FILES|IO_INFO), &thescene, NULL);
172          nsceneobjs = nobjects;
# Line 179 | Line 182 | ray_trace(                     /* trace a primary ray */
182          RAY     *r
183   )
184   {
185 <        rayorigin(r, NULL, PRIMARY, 1.0);
186 <        samplendx++;
185 >        rayorigin(r, PRIMARY, NULL, NULL);
186 >        samplendx = rand_samp ? random() : samplendx+1;
187          rayvalue(r);            /* assumes origin and direction are set */
188   }
189  
# Line 363 | Line 366 | ray_defaults(          /* get default parameter values */
366          memset(rp->ambfile, '\0', sizeof(rp->ambfile));
367          rp->ambvwt = 0;
368          rp->ambres = 256;
369 <        rp->ambacc = 0.1;
369 >        rp->ambacc = 0.15;
370          rp->ambdiv = 1024;
371          rp->ambssamp = 512;
372          rp->ambounce = 0;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines