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

Comparing ray/src/cv/checkBSDF.c (file contents):
Revision 2.2 by greg, Wed Dec 15 02:13:27 2021 UTC vs.
Revision 2.3 by greg, Fri Dec 17 20:51:55 2021 UTC

# Line 177 | Line 177 | checkReciprocity(const char *nm, const int side1, cons
177          if (fl & F_MATRIX) {                    /* special case for matrix BSDF */
178                  const SDMat     *m = (const SDMat *)df->comp[0].dist;
179                  int             i = m->ninc;
180 +                double          diffuseY;
181                  FVECT           vin, vout;
182                  double          fwdY;
183                  SDValue         rev;
184 +                if (side1 == side2)
185 +                        diffuseY = (side1 > 0) ? bsdf->rLambFront.cieY : bsdf->rLambBack.cieY;
186 +                else
187 +                        diffuseY = (side1 > 0) ? bsdf->tLambFront.cieY : bsdf->tLambBack.cieY;
188 +                diffuseY /= M_PI;
189                  while (i--) {
190                      int o = m->nout;
191                      if (!mBSDF_incvec(vin, m, i+.5))
# Line 187 | Line 193 | checkReciprocity(const char *nm, const int side1, cons
193                      while (o--) {
194                          if (!mBSDF_outvec(vout, m, o+.5))
195                                  continue;
196 <                        fwdY = mBSDF_value(m, o, i);
196 >                        fwdY = mBSDF_value(m, o, i) + diffuseY;
197                          if (fwdY <= 1e-4)
198                                  continue;
199                          if (SDreportError( SDevalBSDF(&rev, vout, vin, bsdf), stderr))
# Line 196 | Line 202 | checkReciprocity(const char *nm, const int side1, cons
202                                  addStat(&myStats, rdiff(fwdY, rev.cieY));
203                      }
204                  }
205 <        } if (fl & F_ISOTROPIC) {               /* isotropic case */
205 >        } else if (fl & F_ISOTROPIC) {          /* isotropic case */
206                  const double    stepSize = sqrt(df->minProjSA/M_PI);
207                  FVECT           vin;
208                  vin[1] = 0;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines