| 14 |
|
#include "platform.h" |
| 15 |
|
#include "rtprocess.h" |
| 16 |
|
#include "view.h" |
| 17 |
– |
#include "paths.h" |
| 17 |
|
#include "vars.h" |
| 18 |
|
|
| 19 |
|
#if defined(_WIN32) || defined(_WIN64) |
| 63 |
|
int NVARS = 31; |
| 64 |
|
|
| 65 |
|
VARIABLE vv[] = { /* variable-value pairs */ |
| 66 |
< |
{"AMBFILE", 3, 0, NULL, onevalue}, |
| 66 |
> |
{"AMBFILE", 3, 0, NULL, strvalue}, |
| 67 |
|
{"DETAIL", 3, 0, NULL, qualvalue}, |
| 68 |
|
{"EXPOSURE", 3, 0, NULL, fltvalue}, |
| 69 |
|
{"EYESEP", 3, 0, NULL, fltvalue}, |
| 74 |
|
{"mkpmap", 3, 0, NULL, catvalues}, |
| 75 |
|
{"objects", 3, 0, NULL, catvalues}, |
| 76 |
|
{"oconv", 3, 0, NULL, catvalues}, |
| 77 |
< |
{"OCTREE", 3, 0, NULL, onevalue}, |
| 78 |
< |
{"OPTFILE", 3, 0, NULL, onevalue}, |
| 79 |
< |
{"PCMAP", 2, 0, NULL, onevalue}, |
| 77 |
> |
{"OCTREE", 3, 0, NULL, strvalue}, |
| 78 |
> |
{"OPTFILE", 3, 0, NULL, strvalue}, |
| 79 |
> |
{"PCMAP", 2, 0, NULL, strvalue}, |
| 80 |
|
{"PENUMBRAS", 3, 0, NULL, boolvalue}, |
| 81 |
|
{"pfilt", 2, 0, NULL, catvalues}, |
| 82 |
< |
{"PGMAP", 2, 0, NULL, onevalue}, |
| 83 |
< |
{"PICTURE", 3, 0, NULL, onevalue}, |
| 82 |
> |
{"PGMAP", 2, 0, NULL, strvalue}, |
| 83 |
> |
{"PICTURE", 3, 0, NULL, strvalue}, |
| 84 |
|
{"QUALITY", 3, 0, NULL, qualvalue}, |
| 85 |
< |
{"RAWFILE", 3, 0, NULL, onevalue}, |
| 85 |
> |
{"RAWFILE", 3, 0, NULL, strvalue}, |
| 86 |
|
{"render", 3, 0, NULL, catvalues}, |
| 87 |
|
{"REPORT", 3, 0, NULL, onevalue}, |
| 88 |
|
{"RESOLUTION", 3, 0, NULL, onevalue}, |
| 92 |
|
{"UP", 2, 0, NULL, onevalue}, |
| 93 |
|
{"VARIABILITY", 3, 0, NULL, qualvalue}, |
| 94 |
|
{"view", 2, 0, NULL, NULL}, |
| 95 |
< |
{"ZFILE", 2, 0, NULL, onevalue}, |
| 95 |
> |
{"ZFILE", 2, 0, NULL, strvalue}, |
| 96 |
|
{"ZONE", 2, 0, NULL, onevalue}, |
| 97 |
|
}; |
| 98 |
|
|
| 130 |
|
|
| 131 |
|
#define DEF_RPICT_PATH "rpict" /* default rpict path */ |
| 132 |
|
|
| 133 |
+ |
#define R_CMDMAX (5*PATH_MAX+512) |
| 134 |
|
/* command paths */ |
| 135 |
|
char c_oconv[256] = "oconv"; |
| 136 |
|
char c_mkillum[256] = "mkillum"; |
| 144 |
|
|
| 145 |
|
int children_running = 0; /* set negative in children */ |
| 146 |
|
|
| 147 |
– |
char *progname; /* global argv[0] */ |
| 147 |
|
char *rifname; /* global rad input file name */ |
| 148 |
|
|
| 149 |
|
char radname[PATH_MAX]; /* root Radiance file name */ |
| 196 |
|
char ropts[512]; |
| 197 |
|
char popts[64]; |
| 198 |
|
int i; |
| 199 |
< |
|
| 200 |
< |
progname = argv[0]; |
| 199 |
> |
/* set global progname */ |
| 200 |
> |
fixargv0(argv[0]); |
| 201 |
|
/* get options */ |
| 202 |
|
for (i = 1; i < argc && argv[i][0] == '-'; i++) |
| 203 |
|
switch (argv[i][1]) { |
| 241 |
|
/* load variable values */ |
| 242 |
|
loadvars(rifname); |
| 243 |
|
/* get any additional assignments */ |
| 244 |
< |
for (i++; i < argc; i++) |
| 245 |
< |
if (setvariable(argv[i], matchvar) < 0) { |
| 246 |
< |
fprintf(stderr, "%s: unknown variable: %s\n", |
| 244 |
> |
for (i++; i < argc; i++) { |
| 245 |
> |
int rv = setvariable(argv[i], matchvar); |
| 246 |
> |
if (rv < 0) { |
| 247 |
> |
fprintf(stderr, "%s: unknown setting: %s\n", |
| 248 |
|
progname, argv[i]); |
| 249 |
|
quit(1); |
| 250 |
|
} |
| 251 |
+ |
if (!rv) |
| 252 |
+ |
fprintf(stderr, |
| 253 |
+ |
"%s: bad variable assignment: %s (ignored)\n", |
| 254 |
+ |
progname, argv[i]); |
| 255 |
+ |
} |
| 256 |
|
/* check assignments */ |
| 257 |
|
checkvalues(); |
| 258 |
|
/* check files and dates */ |
| 527 |
|
oconv(void) /* run oconv and mkillum if necessary */ |
| 528 |
|
{ |
| 529 |
|
static char illumtmp[] = "ilXXXXXX"; |
| 530 |
< |
char combuf[PATH_MAX], ocopts[64], mkopts[1024]; |
| 530 |
> |
char combuf[R_CMDMAX], ocopts[64], mkopts[1024]; |
| 531 |
|
|
| 532 |
|
oconvopts(ocopts); /* get options */ |
| 533 |
|
if (octreedate < scenedate) { /* check date on original octree */ |
| 908 |
|
op = addarg(op, "-ds .4"); |
| 909 |
|
else |
| 910 |
|
op = addarg(op, "-ds 0"); |
| 911 |
< |
op = addarg(op, "-dt .2 -dc .25 -dr 0 -ss 0 -st .5"); |
| 911 |
> |
op = addarg(op, "-dt .1 -dc .5 -dr 0 -ss 0 -st .5"); |
| 912 |
|
if (vdef(AMBFILE)) { |
| 913 |
|
sprintf(op, " -af %s", vval(AMBFILE)); |
| 914 |
|
op += strlen(op); |
| 929 |
|
d = ambval(); |
| 930 |
|
sprintf(op, " -av %.2g %.2g %.2g", d, d, d); |
| 931 |
|
op += strlen(op); |
| 932 |
< |
op = addarg(op, "-lr 6 -lw .003"); |
| 932 |
> |
op = addarg(op, "-lr 6 -lw .001"); |
| 933 |
|
} |
| 934 |
|
|
| 935 |
|
|
| 983 |
|
op = addarg(op, "-ds .2 -dj .9"); |
| 984 |
|
else |
| 985 |
|
op = addarg(op, "-ds .3"); |
| 986 |
< |
op = addarg(op, "-dt .1 -dc .5 -dr 1 -ss 1 -st .1"); |
| 986 |
> |
op = addarg(op, "-dt .07 -dc .7 -dr 1 -ss 1 -st .1"); |
| 987 |
|
if ( (overture = vint(INDIRECT)) ) { |
| 988 |
|
sprintf(op, " -ab %d", overture); |
| 989 |
|
op += strlen(op); |
| 1061 |
|
op = addarg(op, "-ds .1 -dj .9"); |
| 1062 |
|
else |
| 1063 |
|
op = addarg(op, "-ds .2"); |
| 1064 |
< |
op = addarg(op, "-dt .05 -dc .75 -dr 3 -ss 16 -st .01"); |
| 1064 |
> |
op = addarg(op, "-dt .04 -dc .9 -dr 3 -ss 16 -st .01"); |
| 1065 |
|
sprintf(op, " -ab %d", overture=vint(INDIRECT)+1); |
| 1066 |
|
op += strlen(op); |
| 1067 |
|
if (vdef(AMBFILE)) { |
| 1083 |
|
d = ambval(); |
| 1084 |
|
sprintf(op, " -av %.2g %.2g %.2g", d, d, d); |
| 1085 |
|
op += strlen(op); |
| 1086 |
< |
op = addarg(op, "-lr 12 -lw 1e-5"); |
| 1086 |
> |
op = addarg(op, "-lr 12 -lw 5e-6"); |
| 1087 |
|
} |
| 1088 |
|
|
| 1089 |
|
|
| 1414 |
|
) |
| 1415 |
|
{ |
| 1416 |
|
char *vw; |
| 1417 |
< |
char combuf[PATH_MAX]; |
| 1417 |
> |
char combuf[R_CMDMAX]; |
| 1418 |
|
/* build command */ |
| 1419 |
|
if (touchonly || (vw = getview(0, NULL)) == NULL) |
| 1420 |
|
return; |
| 1612 |
|
} else { |
| 1613 |
|
if (overture) { /* run overture calculation */ |
| 1614 |
|
sprintf(combuf, |
| 1615 |
< |
"%s%s %s%s -x 64 -y 64 -ps 1 %s > %s", |
| 1616 |
< |
c_rpict, rep, vw, opts, |
| 1615 |
> |
"%s%s %s%s%s -x 64 -y 64 -ps 1 %s > %s", |
| 1616 |
> |
c_rpict, rep, vw, opts, po, |
| 1617 |
|
oct1name, overfile); |
| 1618 |
|
if (!do_rpiece || !next_process(0)) { |
| 1619 |
|
if (runcom(combuf)) { |