90 |
|
*/ |
91 |
|
|
92 |
|
#include <string.h> |
93 |
+ |
#include <time.h> |
94 |
|
|
95 |
|
#include "ray.h" |
96 |
|
#include "source.h" |
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 */ |
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 |
|
) |
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; |
182 |
|
/* ready to go... */ |
183 |
|
} |
184 |
|
|
185 |
< |
extern void |
185 |
> |
void |
186 |
|
ray_trace( /* trace a primary ray */ |
187 |
|
RAY *r |
188 |
|
) |
193 |
|
} |
194 |
|
|
195 |
|
|
196 |
< |
extern void |
196 |
> |
void |
197 |
|
ray_done( /* free ray-tracing data */ |
198 |
|
int freall |
199 |
|
) |
221 |
|
} |
222 |
|
|
223 |
|
|
224 |
< |
extern void |
224 |
> |
void |
225 |
|
ray_save( /* save current parameter settings */ |
226 |
|
RAYPARAMS *rp |
227 |
|
) |
272 |
|
} |
273 |
|
|
274 |
|
|
275 |
< |
extern void |
275 |
> |
void |
276 |
|
ray_restore( /* restore parameter settings */ |
277 |
|
RAYPARAMS *rp |
278 |
|
) |
340 |
|
} |
341 |
|
|
342 |
|
|
343 |
< |
extern void |
343 |
> |
void |
344 |
|
ray_defaults( /* get default parameter values */ |
345 |
|
RAYPARAMS *rp |
346 |
|
) |