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

Comparing ray/src/rt/normal.c (file contents):
Revision 2.85 by greg, Thu Dec 5 19:23:43 2024 UTC vs.
Revision 2.90 by greg, Fri Jun 20 18:05:30 2025 UTC

# Line 134 | Line 134 | dirnorm(               /* compute source contribution */
134                  dtmp = np->alpha2;
135                                                  /* + source if flat */
136                  if (np->specfl & SP_FLAT)
137 <                        dtmp += omega * (0.25/PI);
137 >                        dtmp += (1. - dstrsrc) * omega * (0.25/PI);
138                                                  /* half vector */
139                  VSUB(vtmp, ldir, np->rp->rdir);
140                  d2 = DOT(vtmp, np->pnorm);
# Line 225 | Line 225 | m_normal(                      /* color a ray that hit something normal *
225                  VCOPY(nd.pnorm, r->ron);
226                  nd.pdot = r->rod;
227          }
228 <        if (r->ro != NULL && isflat(r->ro->otype))
228 >        if (!hastexture && r->ro != NULL && isflat(r->ro->otype))
229                  nd.specfl |= SP_FLAT;
230          if (nd.pdot < .001)
231                  nd.pdot = .001;                 /* non-zero for dirnorm() */
# Line 319 | Line 319 | m_normal(                      /* color a ray that hit something normal *
319                          copyscolor(r->mcol, lr.rcol);
320                          saddscolor(r->rcol, lr.rcol);
321                          r->rmt = r->rot;
322 <                        if (nd.specfl & SP_FLAT &&
323 <                                        !hastexture | (r->crtype & AMBIENT))
322 >                        if (nd.specfl & SP_FLAT && r->crtype & AMBIENT)
323                                  r->rmt += raydistance(&lr);
324                  }
325          }
# Line 395 | Line 394 | gaussamp(                      /* sample Gaussian specular */
394                                  nstarget = 1;
395                  }
396                  scolorblack(scol);
397 <                dimlist[ndims++] = (int)(size_t)np->mp;
397 >                dimlist[ndims_inc()] = (int)(size_t)np->mp;
398                  maxiter = MAXITER*nstarget;
399                  for (nstaken = ntrials = 0; nstaken < nstarget &&
400                                                  ntrials < maxiter; ntrials++) {
# Line 440 | Line 439 | gaussamp(                      /* sample Gaussian specular */
439                          scalescolor(scol, d);
440                          saddscolor(np->rp->rcol, scol);
441                  }
442 <                ndims--;
442 >                dec_ndims();
443          }
444                                          /* compute transmission */
445          copyscolor(sr.rcoef, np->mcolor);       /* modified by color */
# Line 459 | Line 458 | gaussamp(                      /* sample Gaussian specular */
458                          } else
459                                  nstarget = 1;
460                  }
461 <                dimlist[ndims++] = (int)(size_t)np->mp;
461 >                dimlist[ndims_inc()] = (int)(size_t)np->mp;
462                  maxiter = MAXITER*nstarget;
463                  for (nstaken = ntrials = 0; nstaken < nstarget &&
464                                                  ntrials < maxiter; ntrials++) {
# Line 490 | Line 489 | gaussamp(                      /* sample Gaussian specular */
489                          saddscolor(np->rp->rcol, sr.rcol);
490                          ++nstaken;
491                  }
492 <                ndims--;
492 >                dec_ndims();
493          }
494   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines