--- ray/src/util/rad.c 1993/08/24 21:44:55 2.20 +++ ray/src/util/rad.c 1993/09/07 11:57:04 2.23 @@ -110,13 +110,14 @@ long matdate; /* date of latest material file */ int explicate = 0; /* explicate variables */ int silent = 0; /* do work silently */ int noaction = 0; /* don't do anything */ -int vwonly = 0; /* print view only */ +int sayview = 0; /* print view out */ char *rvdevice = NULL; /* rview output device */ char *viewselect = NULL; /* specific view only */ int overture = 0; /* overture calculation needed */ char *progname; /* global argv[0] */ +char *rifname; /* global rad input file name */ char radname[MAXPATH]; /* root Radiance file name */ @@ -145,8 +146,8 @@ char *argv[]; rvdevice = argv[++i]; break; case 'V': - vwonly++; - /* fall through */ + sayview++; + break; case 'v': viewselect = argv[++i]; break; @@ -155,10 +156,11 @@ char *argv[]; } if (i >= argc) goto userr; + rifname = argv[i]; /* assign Radiance root file name */ - rootname(radname, argv[i]); + rootname(radname, rifname); /* load variable values */ - load(argv[i]); + load(rifname); /* get any additional assignments */ for (i++; i < argc; i++) setvariable(argv[i]); @@ -171,9 +173,6 @@ char *argv[]; /* print all values if requested */ if (explicate) printvals(); - /* print view and exit? */ - if (vwonly) - exit(printview()==0 ? 0 : 1); /* build octree */ oconv(); /* check date on ambient file */ @@ -613,17 +612,17 @@ register char *op; d *= 3./(siz[0]+siz[1]+siz[2]); switch (vscale(DETAIL)) { case LOW: - op = addarg(op, "-ps 16 -dp 16"); + op = addarg(op, "-ps 16 -dp 64"); sprintf(op, " -ar %d", (int)(4*d)); op += strlen(op); break; case MEDIUM: - op = addarg(op, "-ps 8 -dp 32"); + op = addarg(op, "-ps 8 -dp 128"); sprintf(op, " -ar %d", (int)(8*d)); op += strlen(op); break; case HIGH: - op = addarg(op, "-ps 4 -dp 64"); + op = addarg(op, "-ps 4 -dp 256"); sprintf(op, " -ar %d", (int)(16*d)); op += strlen(op); break; @@ -675,19 +674,19 @@ register char *op; switch (vscale(DETAIL)) { case LOW: op = addarg(op, vbool(PENUMBRAS) ? "-ps 4" : "-ps 8"); - op = addarg(op, "-dp 64"); + op = addarg(op, "-dp 256"); sprintf(op, " -ar %d", (int)(8*d)); op += strlen(op); break; case MEDIUM: op = addarg(op, vbool(PENUMBRAS) ? "-ps 3" : "-ps 6"); - op = addarg(op, "-dp 128"); + op = addarg(op, "-dp 512"); sprintf(op, " -ar %d", (int)(16*d)); op += strlen(op); break; case HIGH: op = addarg(op, vbool(PENUMBRAS) ? "-ps 2" : "-ps 4"); - op = addarg(op, "-dp 256"); + op = addarg(op, "-dp 1024"); sprintf(op, " -ar %d", (int)(32*d)); op += strlen(op); break; @@ -742,19 +741,19 @@ register char *op; switch (vscale(DETAIL)) { case LOW: op = addarg(op, vbool(PENUMBRAS) ? "-ps 1" : "-ps 8"); - op = addarg(op, "-dp 256"); + op = addarg(op, "-dp 1024"); sprintf(op, " -ar %d", (int)(16*d)); op += strlen(op); break; case MEDIUM: op = addarg(op, vbool(PENUMBRAS) ? "-ps 1" : "-ps 5"); - op = addarg(op, "-dp 512"); + op = addarg(op, "-dp 2048"); sprintf(op, " -ar %d", (int)(32*d)); op += strlen(op); break; case HIGH: op = addarg(op, vbool(PENUMBRAS) ? "-ps 1" : "-ps 3"); - op = addarg(op, "-dp 1024"); + op = addarg(op, "-dp 4096"); sprintf(op, " -ar %d", (int)(64*d)); op += strlen(op); break; @@ -1013,14 +1012,14 @@ char *vn; /* returned view name */ } -printview() /* print out selected view */ +printview(vopts) /* print out selected view */ +register char *vopts; { extern char *atos(); char buf[256]; FILE *fp; - register char *vopts, *cp; + register char *cp; - vopts = getview(0, NULL); if (vopts == NULL) return(-1); fputs("VIEW=", stdout); @@ -1063,9 +1062,14 @@ printview() /* print out selected view */ rview(opts) /* run rview with first view */ char *opts; { + char *vw; char combuf[512]; /* build command */ - sprintf(combuf, "rview %s%s ", getview(0, NULL), opts); + if ((vw = getview(0, NULL)) == NULL) + return; + if (sayview) + printview(vw); + sprintf(combuf, "rview %s%s -R %s ", vw, opts, rifname); if (rvdevice != NULL) sprintf(combuf+strlen(combuf), "-o %s ", rvdevice); strcat(combuf, vval(OCTREE)); @@ -1120,6 +1124,8 @@ char *opts; /* do each view */ vn = 0; while ((vw = getview(vn++, vs)) != NULL) { + if (sayview) + printview(vw); if (!vs[0]) sprintf(vs, "%d", vn); sprintf(picfile, "%s_%s.pic", vval(PICTURE), vs);