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

Comparing ray/src/rt/m_brdf.c (file contents):
Revision 2.22 by greg, Thu Sep 9 15:40:02 2004 UTC vs.
Revision 2.23 by greg, Tue Apr 19 01:15:06 2005 UTC

# Line 267 | Line 267 | m_brdf(                        /* color a ray that hit a BRDTfunc material
267                          evalue(mf->ep[5]));
268          if (errno == EDOM || errno == ERANGE)
269                  objerror(m, WARNING, "compute error");
270 <        else if (rayorigin(&sr, r, TRANS, bright(ctmp)) == 0) {
270 >        else if (rayorigin(&sr, TRANS, r, ctmp) == 0) {
271                  if (!(r->crtype & SHADOW) && hastexture) {
272                          for (i = 0; i < 3; i++) /* perturb direction */
273                                  sr.rdir[i] = r->rdir[i] - .75*r->pert[i];
# Line 279 | Line 279 | m_brdf(                        /* color a ray that hit a BRDTfunc material
279                          VCOPY(sr.rdir, r->rdir);
280                  }
281                  rayvalue(&sr);
282 <                multcolor(sr.rcol, ctmp);
282 >                multcolor(sr.rcol, sr.rcoef);
283                  addcolor(r->rcol, sr.rcol);
284                  if (!hastexture) {
285                          transtest = 2.0*bright(sr.rcol);
# Line 296 | Line 296 | m_brdf(                        /* color a ray that hit a BRDTfunc material
296                          evalue(mf->ep[2]));
297          if (errno == EDOM || errno == ERANGE)
298                  objerror(m, WARNING, "compute error");
299 <        else if (rayorigin(&sr, r, REFLECTED, bright(ctmp)) == 0) {
299 >        else if (rayorigin(&sr, REFLECTED, r, ctmp) == 0) {
300                  for (i = 0; i < 3; i++)
301                          sr.rdir[i] = r->rdir[i] + 2.0*nd.pdot*nd.pnorm[i];
302                  rayvalue(&sr);
303 <                multcolor(sr.rcol, ctmp);
303 >                multcolor(sr.rcol, sr.rcoef);
304                  addcolor(r->rcol, sr.rcol);
305                  if (!hastexture && r->ro != NULL && isflat(r->ro->otype)) {
306                          mirtest = 2.0*bright(sr.rcol);
# Line 311 | Line 311 | m_brdf(                        /* color a ray that hit a BRDTfunc material
311          if (hasrefl) {
312                  if (!hitfront)
313                          flipsurface(r);
314 <                ambient(ctmp, r, nd.pnorm);
315 <                multcolor(ctmp, nd.rdiff);
314 >                copycolor(ctmp, nd.rdiff);
315 >                multambient(ctmp, r, nd.pnorm);
316                  addcolor(r->rcol, ctmp);        /* add to returned color */
317                  if (!hitfront)
318                          flipsurface(r);
# Line 323 | Line 323 | m_brdf(                        /* color a ray that hit a BRDTfunc material
323                  vtmp[0] = -nd.pnorm[0];
324                  vtmp[1] = -nd.pnorm[1];
325                  vtmp[2] = -nd.pnorm[2];
326 <                ambient(ctmp, r, vtmp);
327 <                multcolor(ctmp, nd.tdiff);
326 >                copycolor(ctmp, nd.tdiff);
327 >                multambient(ctmp, r, vtmp);
328                  addcolor(r->rcol, ctmp);
329                  if (hitfront)
330                          flipsurface(r);
# Line 407 | Line 407 | m_brdf2(                       /* color a ray that hit a BRDF material */
407          }
408                                                  /* compute ambient */
409          if (nd.trans < 1.0-FTINY) {
410 <                ambient(ctmp, r, nd.pnorm);
410 >                copycolor(ctmp, nd.mcolor);     /* modified by material color */
411                  scalecolor(ctmp, 1.0-nd.trans);
412 <                multcolor(ctmp, nd.mcolor);     /* modified by material color */
412 >                multambient(ctmp, r, nd.pnorm);
413                  addcolor(r->rcol, ctmp);        /* add to returned color */
414          }
415          if (nd.trans > FTINY) {         /* from other side */
# Line 417 | Line 417 | m_brdf2(                       /* color a ray that hit a BRDF material */
417                  vtmp[0] = -nd.pnorm[0];
418                  vtmp[1] = -nd.pnorm[1];
419                  vtmp[2] = -nd.pnorm[2];
420 <                ambient(ctmp, r, vtmp);
420 >                copycolor(ctmp, nd.mcolor);
421                  scalecolor(ctmp, nd.trans);
422 <                multcolor(ctmp, nd.mcolor);
422 >                multambient(ctmp, r, vtmp);
423                  addcolor(r->rcol, ctmp);
424                  flipsurface(r);
425          }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines