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.94 by greg, Sat Jan 18 03:49:00 2025 UTC vs.
Revision 2.95 by greg, Thu Feb 6 02:17:33 2025 UTC

# Line 284 | Line 284 | rayparticipate(                        /* compute ray medium participation
284          /* PMAP: indirect inscattering accounted for by volume photons? */
285          if (!volumePhotonMapping) {
286                  setscolor(ca,
287 <                        colval(r->albedo,RED)*colval(ambval,RED)*(1.-colval(ce,RED)),
288 <                        colval(r->albedo,GRN)*colval(ambval,GRN)*(1.-colval(ce,GRN)),
289 <                        colval(r->albedo,BLU)*colval(ambval,BLU)*(1.-colval(ce,BLU)));
287 >                        colval(r->albedo,RED)*colval(ambval,RED)*(1.-scolval(ce,RED)),
288 >                        colval(r->albedo,GRN)*colval(ambval,GRN)*(1.-scolval(ce,GRN)),
289 >                        colval(r->albedo,BLU)*colval(ambval,BLU)*(1.-scolval(ce,BLU)));
290                  saddscolor(r->rcol, ca);                /* ambient in scattering */
291          }
292          
# Line 417 | Line 417 | raycontrib(            /* compute (cumulative) ray contribution
417          while (r != NULL && r->crtype&flags) {
418                  smultscolor(rc, r->rcoef);
419                                          /* check for participating medium */
420 <                if (!warnedPM && (bright(r->cext) > FTINY) |
421 <                                (bright(r->albedo) > FTINY)) {
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 >                }
430 >                if (!warnedPM && bright(r->albedo) > FTINY) {
431                          error(WARNING,
432          "ray contribution calculation does not support participating media");
433                          warnedPM++;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines