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.14 by greg, Mon Aug 26 10:11:39 1991 UTC vs.
Revision 1.15 by greg, Tue Oct 22 12:15:41 1991 UTC

# Line 209 | Line 209 | FVECT  pg, dg;
209                  arad = FHUGE;
210          else
211                  arad = (ndivs+ns)/arad;
212 +        if (pg != NULL) {               /* reduce radius if gradient large */
213 +                d = DOT(pg,pg);
214 +                if (d*arad*arad > 1.0)
215 +                        arad = 1.0/sqrt(d);
216 +        }
217          if (arad > maxarad)
218                  arad = maxarad;
219          else if (arad < minarad)
220                  arad = minarad;
221 <        arad /= sqrt(wt);
217 <        if (pg != NULL) {               /* clip pos. gradient if too large */
218 <                d = 4.0*DOT(pg,pg)*arad*arad;
219 <                if (d > 1.0) {
220 <                        d = 1.0/sqrt(d);
221 <                        for (i = 0; i < 3; i++)
222 <                                pg[i] *= d;
223 <                }
224 <        }
225 <        return(arad);
221 >        return(arad/sqrt(wt));
222   oopsy:
223          if (div != NULL)
224                  free((char *)div);
# Line 333 | Line 329 | AMBHEMI  *hp;
329                          if (i > 0) {
330                                  d = dp[-hp->np].r;
331                                  if (dp[0].r > d) d = dp[0].r;
332 <                                d *= 1.0 - sqrt((double)i/hp->nt);
332 >                                d *= 1.0 - (double)i/hp->nt;    /* cos(t)^2 */
333                                  mag0 += d*(b - bright(dp[-hp->np].v));
334                          }
335                          if (j > 0) {
# Line 381 | Line 377 | AMBHEMI  *hp;
377                                  error(CONSISTENCY,
378                                          "division order in dirgradient");
379   #endif
380 <                        mag += sqrt((i+.5)/hp->nt)*bright(dp->v);
380 >                        mag += sqrt((i+.5)/hp->nt)*bright(dp->v);  /* sin(t) */
381                          dp += hp->np;
382                  }
383                  phi = 2.0*PI * (j+.5)/hp->np + PI/2.0;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines