21 |
|
* irradiance values are desired. |
22 |
|
*/ |
23 |
|
|
24 |
< |
#include "ray.h" |
24 |
> |
#include <time.h> |
25 |
|
|
26 |
+ |
#include "platform.h" |
27 |
+ |
#include "ray.h" |
28 |
|
#include "otypes.h" |
27 |
– |
|
29 |
|
#include "resolu.h" |
30 |
|
|
31 |
|
CUBE thescene; /* our scene */ |
57 |
|
int vresolu = 0; /* vertical resolution */ |
58 |
|
|
59 |
|
double dstrsrc = 0.0; /* square source distribution */ |
60 |
< |
double shadthresh = .05; /* shadow threshold */ |
61 |
< |
double shadcert = .5; /* shadow certainty */ |
60 |
> |
double shadthresh = .03; /* shadow threshold */ |
61 |
> |
double shadcert = .75; /* shadow certainty */ |
62 |
|
int directrelay = 2; /* number of source relays */ |
63 |
|
int vspretest = 512; /* virtual source pretest density */ |
64 |
|
int directvis = 1; /* sources visible? */ |
74 |
|
|
75 |
|
int backvis = 1; /* back face visibility */ |
76 |
|
|
77 |
< |
int maxdepth = 6; /* maximum recursion depth */ |
78 |
< |
double minweight = 4e-3; /* minimum ray weight */ |
77 |
> |
int maxdepth = 8; /* maximum recursion depth */ |
78 |
> |
double minweight = 2e-3; /* minimum ray weight */ |
79 |
|
|
80 |
|
char *ambfile = NULL; /* ambient file name */ |
81 |
|
COLOR ambval = BLKCOLOR; /* ambient value */ |
82 |
|
int ambvwt = 0; /* initial weight for ambient value */ |
83 |
< |
double ambacc = 0.2; /* ambient accuracy */ |
84 |
< |
int ambres = 128; /* ambient resolution */ |
85 |
< |
int ambdiv = 512; /* ambient divisions */ |
86 |
< |
int ambssamp = 0; /* ambient super-samples */ |
83 |
> |
double ambacc = 0.1; /* ambient accuracy */ |
84 |
> |
int ambres = 256; /* ambient resolution */ |
85 |
> |
int ambdiv = 1024; /* ambient divisions */ |
86 |
> |
int ambssamp = 512; /* ambient super-samples */ |
87 |
|
int ambounce = 0; /* ambient bounces */ |
88 |
|
char *amblist[128]; /* ambient include/exclude list */ |
89 |
|
int ambincl = -1; /* include == 1, exclude == 0 */ |
109 |
|
quit(code) /* quit program */ |
110 |
|
int code; |
111 |
|
{ |
112 |
< |
#ifndef NIX |
112 |
> |
#ifndef NON_POSIX /* XXX we don't clean up elsewhere? */ |
113 |
|
headclean(); /* delete header file */ |
114 |
|
pfclean(); /* clean up persist files */ |
115 |
|
#endif |
147 |
|
sprintf(errmsg, "cannot open input file \"%s\"", fname); |
148 |
|
error(SYSTEM, errmsg); |
149 |
|
} |
150 |
< |
#ifdef MSDOS |
150 |
> |
#ifdef _WIN32 |
151 |
|
if (inform != 'a') |
152 |
< |
setmode(fileno(fp), O_BINARY); |
152 |
> |
SET_FILE_BINARY(fp); |
153 |
|
#endif |
154 |
|
/* set up output */ |
155 |
|
setoutput(outvals); |
285 |
|
thisray.rmax = dmax; |
286 |
|
rayorigin(&thisray, NULL, PRIMARY, 1.0); |
287 |
|
if (castonly) { |
288 |
< |
if (!localhit(&thisray, &thescene)) |
288 |
> |
if (!localhit(&thisray, &thescene)) { |
289 |
|
if (thisray.ro == &Aftplane) { /* clipped */ |
290 |
|
thisray.ro = NULL; |
291 |
|
thisray.rot = FHUGE; |
292 |
|
} else |
293 |
|
sourcehit(&thisray); |
294 |
+ |
} |
295 |
|
} else |
296 |
|
rayvalue(&thisray); |
297 |
|
printvals(&thisray); |