ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/rt/rtrace.c
(Generate patch)

Comparing ray/src/rt/rtrace.c (file contents):
Revision 2.20 by greg, Fri Dec 8 18:49:12 1995 UTC vs.
Revision 2.24 by gregl, Wed Jul 9 11:25:49 1997 UTC

# Line 1 | Line 1
1 < /* Copyright (c) 1995 Regents of the University of California */
1 > /* Copyright (c) 1997 Silicon Graphics, Inc. */
2  
3   #ifndef lint
4 < static char SCCSid[] = "$SunId$ LBL";
4 > static char SCCSid[] = "$SunId$ SGI";
5   #endif
6  
7   /*
# Line 59 | Line 59 | int  directvis = 1;                    /* sources visible? */
59   double  srcsizerat = .2;                /* maximum ratio source size/dist. */
60  
61   COLOR  cextinction = BLKCOLOR;          /* global extinction coefficient */
62 < double  salbedo = 0.;                   /* global scattering albedo */
62 > COLOR  salbedo = BLKCOLOR;              /* global scattering albedo */
63   double  seccg = 0.;                     /* global scattering eccentricity */
64   double  ssampdist = 0.;                 /* scatter sampling distance */
65  
# Line 72 | Line 72 | int  maxdepth = 6;                     /* maximum recursion depth */
72   double  minweight = 4e-3;               /* minimum ray weight */
73  
74   COLOR  ambval = BLKCOLOR;               /* ambient value */
75 + int  ambvwt = 0;                        /* initial weight for ambient value */
76   double  ambacc = 0.2;                   /* ambient accuracy */
77   int  ambres = 128;                      /* ambient resolution */
78   int  ambdiv = 512;                      /* ambient divisions */
# Line 162 | Line 163 | char  *fname;
163                          getvec(direc, inform, fp) == 0) {
164  
165                  if (normalize(direc) == 0.0) {          /* zero ==> flush */
166 <                        fflush(stdout);
167 <                        continue;
168 <                }
169 <                samplendx++;
166 >                        bogusray();
167 >                        if (--nextflush <= 0) {
168 >                                fflush(stdout);
169 >                                nextflush = hresolu;
170 >                        }
171 >                } else {
172 >                        samplendx++;
173                                                          /* compute and print */
174 <                if (imm_irrad)
175 <                        irrad(orig, direc);
176 <                else
177 <                        rad(orig, direc);
174 >                        if (imm_irrad)
175 >                                irrad(orig, direc);
176 >                        else
177 >                                rad(orig, direc);
178                                                          /* flush if time */
179 <                if (--nextflush == 0) {
180 <                        fflush(stdout);
181 <                        nextflush = hresolu;
179 >                        if (--nextflush == 0) {
180 >                                fflush(stdout);
181 >                                nextflush = hresolu;
182 >                        }
183                  }
184                  if (ferror(stdout))
185                          error(SYSTEM, "write error");
# Line 245 | Line 250 | register char  *vs;
250   }
251  
252  
253 + bogusray()                      /* print out empty record */
254 + {
255 +        thisray.rorg[0] = thisray.rorg[1] = thisray.rorg[2] =
256 +        thisray.rdir[0] = thisray.rdir[1] = thisray.rdir[2] = 0.0;
257 +        rayorigin(&thisray, NULL, PRIMARY, 1.0);
258 +        printvals(&thisray);
259 + }
260 +
261 +
262   rad(org, dir)                   /* compute and print ray value(s) */
263   FVECT  org, dir;
264   {
# Line 517 | Line 531 | oputm(r)                               /* print modifier */
531   register RAY  *r;
532   {
533          if (r->ro != NULL)
534 <                fputs(objptr(r->ro->omod)->oname, stdout);
534 >                if (r->ro->omod != OVOID)
535 >                        fputs(objptr(r->ro->omod)->oname, stdout);
536 >                else
537 >                        fputs(VOIDID, stdout);
538          else
539                  putchar('*');
540          putchar('\t');

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines