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

Comparing ray/src/hd/rhpict2.c (file contents):
Revision 3.7 by gwlarson, Tue Mar 9 14:48:06 1999 UTC vs.
Revision 3.8 by gwlarson, Tue Mar 9 15:08:22 1999 UTC

# Line 211 | Line 211 | register short nl[NNEIGH][2];
211   int     n;
212   double  *rf;
213   {
214 <        float   nwt[NNEIGH];
214 >        double  tv = *rf * (1.-1./NNEIGH);
215          int4    maxr2;
216          register int4   p, r2;
217          register int    i;
# Line 224 | Line 224 | double *rf;
224          maxr2 = (h-nl[n-1][0])*(h-nl[n-1][0]) + (v-nl[n-1][1])*(v-nl[n-1][1]);
225          DCHECK(maxr2>=MAXRAD2, CONSISTENCY, "out of range neighbor");
226          maxr = isqrt(maxr2);
227                                                /* compute neighbor weights */
228        for (i = n; i--; ) {
229                r2 = (nl[i][0]-h)*(nl[i][0]-h) + (nl[i][1]-v)*(nl[i][1]-v);
230                nwt[i] = pixWeight[r2];
231        }
227                                                  /* sample kernel */
228          for (v2 = v-maxr; v2 <= v+maxr; v2++) {
229                  if (v2 < 0) v2 = 0;
# Line 240 | Line 235 | double *rf;
235                          if (r2 > maxr2) continue;
236                          if (CHK4(pixFlags, v2*hres+h2))
237                                  continue;       /* occupied */
238 <                        if (frandom() < *rf) {  /* pick neighbor instead */
238 >                        if (frandom() < tv) {   /* use neighbor instead? */
239                                  i = random() % n;
240                                  r2 = nl[i][1]*hres + nl[i][0];
241                                  copycolor(ctmp, mypixel[r2]);
242 <                                scalecolor(ctmp, nwt[i]);
243 <                                addcolor(mypixel[v2*hres+h2], ctmp);
244 <                                myweight[v2*hres+h2] += nwt[i] * myweight[r2];
245 <                                continue;
242 >                                r2 = (h2-nl[i][0])*(h2-nl[i][0]) +
243 >                                                (v2-nl[i][1])*(v2-nl[i][1]);
244 >                                if (r2 < MAXRAD2) {
245 >                                        scalecolor(ctmp, pixWeight[r2]);
246 >                                        addcolor(mypixel[v2*hres+h2], ctmp);
247 >                                        myweight[v2*hres+h2] += pixWeight[r2] *
248 >                                              myweight[nl[i][1]*hres+nl[i][0]];
249 >                                        continue;
250 >                                }
251                          }
252 +                                                /* use central sample */
253                          copycolor(ctmp, mypixel[p]);
254                          scalecolor(ctmp, pixWeight[r2]);
255                          addcolor(mypixel[v2*hres+h2], ctmp);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines