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

Comparing ray/src/rt/raytrace.c (file contents):
Revision 2.95 by greg, Thu Feb 6 02:17:33 2025 UTC vs.
Revision 2.96 by greg, Fri Feb 7 16:32:56 2025 UTC

# Line 411 | Line 411 | raycontrib(            /* compute (cumulative) ray contribution
411   )
412   {
413          static int      warnedPM = 0;
414 +        double          re, ge, be;
415 +        SCOLOR          ce;
416  
417          setscolor(rc, 1., 1., 1.);
418 +        re = ge = be = 0.;
419  
420          while (r != NULL && r->crtype&flags) {
421 +                                        /* include this ray coefficient */
422                  smultscolor(rc, r->rcoef);
423 <                                        /* check for participating medium */
420 <                if (bright(r->cext) > FTINY) {
421 <                        double  re = r->rot*colval(r->cext,RED),
422 <                                ge = r->rot*colval(r->cext,GRN),
423 <                                be = r->rot*colval(r->cext,BLU);
424 <                        SCOLOR  ce;
425 <                        setscolor(ce,   re<=FTINY ? 1. : re>92. ? 0. : exp(-re),
426 <                                        ge<=FTINY ? 1. : ge>92. ? 0. : exp(-ge),
427 <                                        be<=FTINY ? 1. : be>92. ? 0. : exp(-be));
428 <                        smultscolor(rc, ce);
429 <                }
423 >                                        /* check participating medium */
424                  if (!warnedPM && bright(r->albedo) > FTINY) {
425                          error(WARNING,
426          "ray contribution calculation does not support participating media");
427                          warnedPM++;
428                  }
429 +                                        /* sum PM extinction */
430 +                re += r->rot*colval(r->cext,RED);
431 +                ge += r->rot*colval(r->cext,GRN);
432 +                be += r->rot*colval(r->cext,BLU);
433 +                                        /* descend the tree */
434                  r = r->parent;
435          }
436 +                                        /* cumulative extinction */
437 +        setscolor(ce,   re<=FTINY ? 1. : re>92. ? 0. : exp(-re),
438 +                        ge<=FTINY ? 1. : ge>92. ? 0. : exp(-ge),
439 +                        be<=FTINY ? 1. : be>92. ? 0. : exp(-be));
440 +        smultscolor(rc, ce);
441   }
442  
443  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines