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 1.15 by greg, Tue Oct 22 12:15:41 1991 UTC vs.
Revision 1.16 by greg, Mon Nov 4 11:14:46 1991 UTC

# Line 206 | Line 206 | FVECT  pg, dg;
206          b = 1.0/ndivs;
207          scalecolor(acol, b);
208          if (arad <= FTINY)
209 <                arad = FHUGE;
210 <        else
209 >                arad = maxarad;
210 >        else {
211                  arad = (ndivs+ns)/arad;
212 +                if (arad > maxarad)
213 +                        arad = maxarad;
214 +        }
215          if (pg != NULL) {               /* reduce radius if gradient large */
216                  d = DOT(pg,pg);
217                  if (d*arad*arad > 1.0)
218                          arad = 1.0/sqrt(d);
219          }
220 <        if (arad > maxarad)
218 <                arad = maxarad;
219 <        else if (arad < minarad)
220 >        if (arad < minarad) {
221                  arad = minarad;
222 +                if (pg != NULL && d*arad*arad > 1.0) {  /* cap gradient */
223 +                        d = 1.0/arad/sqrt(d);
224 +                        for (i = 0; i < 3; i++)
225 +                                pg[i] *= d;
226 +                }
227 +        }
228          return(arad/sqrt(wt));
229   oopsy:
230          if (div != NULL)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines