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.17 by greg, Sat Dec 12 05:20:10 2009 UTC vs.
Revision 2.23 by greg, Tue Jan 23 23:37:11 2018 UTC

# Line 94 | Line 94 | static const char      RCSid[] = "$Id$";
94  
95   #include  "ray.h"
96   #include  "source.h"
97 + #include  "bsdf.h"
98   #include  "ambient.h"
99   #include  "otypes.h"
100   #include  "random.h"
101   #include  "data.h"
102   #include  "font.h"
103 + #include  "pmapray.h"
104  
105   char    *progname = "unknown_app";      /* caller sets to argv[0] */
106  
# Line 140 | Line 142 | double specjitter = 1.;                /* specular sampling jitter *
142   int     backvis = 1;                    /* back face visibility */
143  
144   int     maxdepth = 8;                   /* maximum recursion depth */
145 < double  minweight = 2e-3;               /* minimum ray weight */
145 > double  minweight = 5e-4;               /* minimum ray weight */
146  
147   char    *ambfile = NULL;                /* ambient file name */
148   COLOR   ambval = BLKCOLOR;              /* ambient value */
# Line 175 | Line 177 | ray_init(                      /* initialize ray-tracing calculation */
177                                          /* read scene octree */
178          readoct(octname = otnm, ~(IO_FILES|IO_INFO), &thescene, NULL);
179          nsceneobjs = nobjects;
180 +                                        /* PMAP: Init & load photon maps */
181 +        ray_init_pmap();
182                                          /* find and mark sources */
183          marksources();
184                                          /* initialize ambient calculation */
185          setambient();
186 <                                        /* ready to go... */
186 >                                        /* ready to go... (almost) */
187   }
188  
189   void
# Line 207 | Line 211 | ray_done(              /* free ray-tracing data */
211          octdone();
212          thescene.cutree = EMPTY;
213          octname = NULL;
214 +        retainfonts = 0;
215          if (freall) {
211                retainfonts = 0;
216                  freefont(NULL);
217                  freedata(NULL);
218 +                SDfreeCache(NULL);
219                  initurand(0);
220          }
221          if (nobjects > 0) {
222                  sprintf(errmsg, "%ld objects left after call to ray_done()",
223 <                                nobjects);
223 >                                (long)nobjects);
224                  error(WARNING, errmsg);
225          }
226 +        
227 +        ray_done_pmap();
228   }
229  
230  
# Line 265 | Line 272 | ray_save(                      /* save current parameter settings */
272                  if (ndx+len >= sizeof(rp->amblval))
273                          break;
274                  strcpy(rp->amblval+ndx, amblist[i]);
275 +                rp->amblndx[i] = ndx;
276                  ndx += len+1;
277          }
278          while (i <= AMBLLEN)
279                  rp->amblndx[i++] = -1;
280 +                
281 +        /* PMAP: save photon mapping params */
282 +        ray_save_pmap(rp);
283   }
284  
285  
# Line 337 | Line 348 | ray_restore(                   /* restore parameter settings */
348                  ambres = rp->ambres;
349                  ambacc = rp->ambacc;
350          }
351 +        
352 +        /* PMAP: restore photon mapping params */
353 +        ray_restore_pmap(rp);
354   }
355  
356  
# Line 379 | Line 393 | ray_defaults(          /* get default parameter values */
393          memset(rp->amblval, '\0', sizeof(rp->amblval));
394          for (i = AMBLLEN+1; i--; )
395                  rp->amblndx[i] = -1;
396 +        
397 +        /* PMAP: restore photon mapping defaults */
398 +        ray_defaults_pmap(rp);
399   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines