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 |
|
|
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 */ |
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 |
223 |
|
(long)nobjects); |
224 |
|
error(WARNING, errmsg); |
225 |
|
} |
226 |
+ |
|
227 |
+ |
ray_done_pmap(); |
228 |
|
} |
229 |
|
|
230 |
|
|
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 |
|
|
348 |
|
ambres = rp->ambres; |
349 |
|
ambacc = rp->ambacc; |
350 |
|
} |
351 |
+ |
|
352 |
+ |
/* PMAP: restore photon mapping params */ |
353 |
+ |
ray_restore_pmap(rp); |
354 |
|
} |
355 |
|
|
356 |
|
|
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 |
|
} |