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

Comparing ray/src/common/bsdf_m.c (file contents):
Revision 3.41 by greg, Sat Mar 27 17:50:18 2021 UTC vs.
Revision 3.46 by greg, Thu Jul 14 02:52:02 2022 UTC

# Line 42 | Line 42 | ANGLE_BASIS    abase_list[MAXABASES] = {
42                  {75., 12},
43                  {90., 0} }
44          }, {
45 <                "LBNL/Klems Half", 73,
45 >                "LBNL/Klems Half", 77,
46                  { {0., 1},
47                  {6.5, 8},
48                  {19.5, 12},
49                  {32.5, 16},
50 <                {46.5, 20},
51 <                {61.5, 12},
52 <                {76.5, 4},
50 >                {45.5, 20},
51 >                {58.5, 12},
52 >                {71.5, 8},
53                  {90., 0} }
54          }, {
55                  "LBNL/Klems Quarter", 41,
56                  { {0., 1},
57                  {9., 8},
58                  {27., 12},
59 <                {46., 12},
60 <                {66., 8},
59 >                {45., 12},
60 >                {63., 8},
61                  {90., 0} }
62          }
63   };
# Line 171 | Line 171 | fo_getndx(const FVECT v, void *p)
171  
172          if (v == NULL)
173                  return -1;
174 <        if ((v[2] < 0) | (v[2] > 1.))
174 >        if ((v[2] < 0) | (v[2] > 1.00001))
175                  return -1;
176          pol = 180.0/M_PI*Acos(v[2]);
177          azi = 180.0/M_PI*atan2(v[1], v[0]);
# Line 295 | Line 295 | int
295   mBSDF_color(float coef[], const SDMat *dp, int i, int o)
296   {
297          C_COLOR cxy;
298 +        double  d;
299  
300          coef[0] = mBSDF_value(dp, o, i);
301 +                                /* position-specific perturbation */
302 +        d = 2*dp->ninc/(i + .22545) + 4*dp->nout/(o + .70281);
303 +        d -= (int)d;
304 +        coef[0] *= 1. + 6e-4*(d - .5);
305          if (dp->chroma == NULL)
306                  return 1;       /* grayscale */
307  
# Line 710 | Line 715 | SDloadMtx(SDData *sd, ezxml_t wtl)
715          sd->rf = extract_diffuse(&sd->rLambFront, sd->rf);
716          sd->rb = extract_diffuse(&sd->rLambBack, sd->rb);
717          sd->tf = extract_diffuse(&sd->tLambFront, sd->tf);
718 <        sd->tb = extract_diffuse(&sd->tLambBack, sd->tb);
718 >        if (sd->tb != NULL) {
719 >                sd->tb = extract_diffuse(&sd->tLambBack, sd->tb);
720 >                if (sd->tf == NULL)
721 >                        sd->tLambFront = sd->tLambBack;
722 >        } else if (sd->tf != NULL)
723 >                sd->tLambBack = sd->tLambFront;
724                                          /* return success */
725          return SDEnone;
726   }
727  
728   /* Get Matrix BSDF value */
729   static int
730 < SDgetMtxBSDF(float coef[SDmaxCh], const FVECT outVec,
731 <                                const FVECT inVec, SDComponent *sdc)
730 > SDgetMtxBSDF(float coef[SDmaxCh], const FVECT inVec,
731 >                                const FVECT outVec, SDComponent *sdc)
732   {
733          const SDMat     *dp;
734          int             i_ndx, o_ndx;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines