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

Comparing ray/src/common/tonemap.c (file contents):
Revision 3.46 by greg, Tue Mar 2 20:09:14 2021 UTC vs.
Revision 3.48 by greg, Wed Apr 7 23:12:19 2021 UTC

# Line 425 | Line 425 | double  Lddyn
425   )
426   {
427          static const char funcName[] = "tmFixedMapping";
428 <        int     maxV = (1L<<(8*sizeof(TMAP_TYP))) - 1;
429 <        double  minD;
430 <        int     i;
428 >        const int       maxV = (1L<<(8*sizeof(TMAP_TYP))) - 1;
429 >        double          minD;
430 >        int             i;
431          
432          if (!tmNewMap(tms))
433                  returnErr(TM_E_NOMEM);
# Line 439 | Line 439 | double  Lddyn
439          for (i = tms->mbrmax-tms->mbrmin+1; i--; ) {
440                  double  d;
441                  d = expmult/tms->inpsf * tmLuminance(tms->mbrmin + i);
442 <                if (d <= minD)
443 <                        break;          /* map initialized to zeroes */
444 <                d = (d - minD)/(1. - minD);
442 >                if (d >= 2.*minD)
443 >                        d -= minD;
444 >                else                    /* soft black crushing */
445 >                        d *= d/(4.*minD);
446 >                d /= 1. - minD;
447                  d = TM_BRES*pow(d, 1./gamval);
448 <                tms->lumap[i] = (d >= maxV) ? maxV : (int)d;
448 >                tms->lumap[i] = (d > maxV) ? maxV : (int)d;
449          }
450          returnOK;
451   }
# Line 688 | Line 690 | TMstruct       *tms
690          tms->mbrmin = tms->hbrmin;
691          tms->mbrmax = tms->hbrmax;
692          if (tms->mbrmin > tms->mbrmax)
693 <                return 0;
693 >                return(0);
694          if (tms->lumap == NULL)
695                  tms->lumap = (TMAP_TYP *)calloc(tms->mbrmax-tms->mbrmin+1,
696                                                  sizeof(TMAP_TYP));

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines