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

Comparing ray/src/rt/ambcomp.c (file contents):
Revision 2.68 by greg, Thu Oct 23 18:19:14 2014 UTC vs.
Revision 2.72 by greg, Wed Mar 16 15:43:04 2016 UTC

# Line 235 | Line 235 | samp_hemi(                             /* sample indirect hemisphere */
235          d = 1.0/(n*n);
236          scalecolor(hp->acoef, d);
237                                          /* make tangent plane axes */
238 <        hp->uy[0] = 0.5 - frandom();
239 <        hp->uy[1] = 0.5 - frandom();
240 <        hp->uy[2] = 0.5 - frandom();
241 <        for (i = 3; i--; )
242 <                if ((-0.6 < r->ron[i]) & (r->ron[i] < 0.6))
243 <                        break;
244 <        if (i < 0)
238 >        if (!getperpendicular(hp->ux, r->ron, 1))
239                  error(CONSISTENCY, "bad ray direction in samp_hemi");
246        hp->uy[i] = 1.0;
247        VCROSS(hp->ux, hp->uy, r->ron);
248        normalize(hp->ux);
240          VCROSS(hp->uy, r->ron, hp->ux);
241                                          /* sample divisions */
242          for (i = hp->ns; i--; )
# Line 618 | Line 609 | ambcorral(AMBHEMI *hp, FVECT uv[2], const double r0, c
609          double          ang, a1;
610          int             i, j;
611                                          /* don't bother for a few samples */
612 <        if (hp->ns < 12)
612 >        if (hp->ns < 8)
613                  return(0);
614                                          /* check distances overhead */
615          for (i = hp->ns*3/4; i-- > hp->ns>>2; )
# Line 742 | Line 733 | doambient(                             /* compute ambient component */
733                                  ra[0] = maxarad;
734                  }
735                                          /* flag encroached directions */
736 <                if ((wt >= 0.89*AVGREFL) & (crlp != NULL))
736 >                if (crlp != NULL)
737                          *crlp = ambcorral(hp, uv, ra[0]*ambacc, ra[1]*ambacc);
738                  if (pg != NULL) {       /* cap gradient if necessary */
739                          d = pg[0]*pg[0]*ra[0]*ra[0] + pg[1]*pg[1]*ra[1]*ra[1];

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines