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.17 by greg, Sat Dec 12 05:20:10 2009 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 152 | Line 154 | char   *amblist[AMBLLEN+1];            /* ambient include/exclude
154   int     ambincl = -1;                   /* include == 1, exclude == 0 */
155  
156  
157 < extern void
157 > void
158   ray_init(                       /* initialize ray-tracing calculation */
159          char    *otnm
160   )
# Line 163 | Line 165 | ray_init(                      /* initialize ray-tracing calculation */
165          if (ofun[OBJ_SPHERE].funp == o_default)
166                  initotypes();
167                                          /* initialize urand */
168 <        initurand(2048);
168 >        if (rand_samp) {
169 >                srandom((long)time(0));
170 >                initurand(0);
171 >        } else {
172 >                srandom(0L);
173 >                initurand(2048);
174 >        }
175                                          /* read scene octree */
176          readoct(octname = otnm, ~(IO_FILES|IO_INFO), &thescene, NULL);
177          nsceneobjs = nobjects;
# Line 174 | Line 182 | ray_init(                      /* initialize ray-tracing calculation */
182                                          /* ready to go... */
183   }
184  
185 < extern void
185 > void
186   ray_trace(                      /* trace a primary ray */
187          RAY     *r
188   )
189   {
190 <        rayorigin(r, NULL, PRIMARY, 1.0);
190 >        rayorigin(r, PRIMARY, NULL, NULL);
191          samplendx++;
192          rayvalue(r);            /* assumes origin and direction are set */
193   }
194  
195  
196 < extern void
196 > void
197   ray_done(               /* free ray-tracing data */
198          int     freall
199   )
# Line 213 | Line 221 | ray_done(              /* free ray-tracing data */
221   }
222  
223  
224 < extern void
224 > void
225   ray_save(                       /* save current parameter settings */
226          RAYPARAMS       *rp
227   )
# Line 264 | Line 272 | ray_save(                      /* save current parameter settings */
272   }
273  
274  
275 < extern void
275 > void
276   ray_restore(                    /* restore parameter settings */
277          RAYPARAMS       *rp
278   )
# Line 332 | Line 340 | ray_restore(                   /* restore parameter settings */
340   }
341  
342  
343 < extern void
343 > void
344   ray_defaults(           /* get default parameter values */
345          RAYPARAMS       *rp
346   )
# Line 363 | Line 371 | ray_defaults(          /* get default parameter values */
371          memset(rp->ambfile, '\0', sizeof(rp->ambfile));
372          rp->ambvwt = 0;
373          rp->ambres = 256;
374 <        rp->ambacc = 0.1;
374 >        rp->ambacc = 0.15;
375          rp->ambdiv = 1024;
376          rp->ambssamp = 512;
377          rp->ambounce = 0;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines