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.41 by greg, Wed Apr 30 23:38:58 2014 UTC vs.
Revision 2.42 by greg, Wed Apr 30 23:44:06 2014 UTC

# Line 163 | Line 163 | getambdiffs(AMBHEMI *hp)
163   {
164          float   *earr = calloc(hp->ns*hp->ns, sizeof(float));
165          float   *ep;
166 +        AMBSAMP *ap;
167          double  b, d2;
168          int     i, j;
169  
170          if (earr == NULL)               /* out of memory? */
171                  return(NULL);
172                                          /* compute squared neighbor diffs */
173 <        for (ep = earr, i = 0; i < hp->ns; i++)
174 <            for (j = 0; j < hp->ns; j++, ep++) {
175 <                b = bright(ambsamp(hp,i,j).v);
173 >        for (ap = hp->sa, ep = earr, i = 0; i < hp->ns; i++)
174 >            for (j = 0; j < hp->ns; j++, ap++, ep++) {
175 >                b = bright(ap[0].v);
176                  if (i) {                /* from above */
177 <                        d2 = b - bright(ambsamp(hp,i-1,j).v);
177 >                        d2 = b - bright(ap[-hp->ns].v);
178                          d2 *= d2;
179                          ep[0] += d2;
180                          ep[-hp->ns] += d2;
181                  }
182                  if (j) {                /* from behind */
183 <                        d2 = b - bright(ambsamp(hp,i,j-1).v);
183 >                        d2 = b - bright(ap[-1].v);
184                          d2 *= d2;
185                          ep[0] += d2;
186                          ep[-1] += d2;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines