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

Comparing ray/src/util/cmbsdf.c (file contents):
Revision 2.3 by greg, Fri Apr 17 01:47:03 2015 UTC vs.
Revision 2.7 by greg, Wed Sep 11 00:24:03 2019 UTC

# Line 28 | Line 28 | cm_bsdf(const COLOR diffBSDF, const SDMat *bsdf)
28                  nbadohm += (dom <= 0);
29  
30                  for (r = 0; r < cm->nrows; r++) {
31 <                        float   f = mBSDF_value(bsdf,c,r);
31 >                        float   f = mBSDF_value(bsdf,r,c);
32                          COLORV  *mp = cm_lval(cm,r,c);
33                                          /* check BSDF value */
34                          if ((f <= 0) | (dom <= 0)) {
# Line 36 | Line 36 | cm_bsdf(const COLOR diffBSDF, const SDMat *bsdf)
36                                  setcolor(mp, .0f, .0f, .0f);
37                          } else if (bsdf->chroma != NULL) {
38                                  C_COLOR cxy;
39 <                                c_decodeChroma(&cxy,
40 <                                        bsdf->chroma[r*bsdf->ninc + c]);
39 >                                c_decodeChroma(&cxy, mBSDF_chroma(bsdf,r,c));
40                                  ccy2rgb(&cxy, f, mp);
41                          } else
42                                  setcolor(mp, f, f, f);
# Line 95 | Line 94 | cm_bsdf_recip(const COLOR diffBSDF, const SDMat *bsdf)
94  
95                  for (r = 0; r < cm->nrows; r++) {
96                          const int       ri = recip_in_from_out(bsdf,r);
97 <                        float           f = mBSDF_value(bsdf,ri,ro);
97 >                        float           f = mBSDF_value(bsdf,ro,ri);
98                          COLORV          *mp = cm_lval(cm,r,c);
99                                          /* check BSDF value */
100                          if ((f <= 0) | (dom <= 0)) {
# Line 103 | Line 102 | cm_bsdf_recip(const COLOR diffBSDF, const SDMat *bsdf)
102                                  setcolor(mp, .0f, .0f, .0f);
103                          } else if (bsdf->chroma != NULL) {
104                                  C_COLOR cxy;
105 <                                c_decodeChroma(&cxy,
107 <                                        bsdf->chroma[ro*bsdf->ninc + ri]);
105 >                                c_decodeChroma(&cxy, mBSDF_chroma(bsdf,ro,ri));
106                                  ccy2rgb(&cxy, f, mp);
107                          } else
108                                  setcolor(mp, f, f, f);
# Line 141 | Line 139 | CMATRIX *
139   cm_loadBTDF(char *fname)
140   {
141          CMATRIX         *Tmat;
144        char            *fpath;
142          int             recip;
143          SDError         ec;
144          SDData          myBSDF;
145          SDSpectralDF    *tdf;
146          COLOR           diffBSDF;
147 <                                        /* find path to BSDF file */
151 <        fpath = getpath(fname, getrlibpath(), R_OK);
152 <        if (fpath == NULL) {
153 <                sprintf(errmsg, "cannot find BSDF file '%s'", fname);
154 <                error(USER, errmsg);
155 <        }
147 >
148          SDclearBSDF(&myBSDF, fname);    /* load XML and check type */
149 <        ec = SDloadFile(&myBSDF, fpath);
149 >        ec = SDloadFile(&myBSDF, fname);
150          if (ec)
151                  error(USER, transSDError(ec));
152          ccy2rgb(&myBSDF.tLamb.spec, myBSDF.tLamb.cieY/PI, diffBSDF);
# Line 165 | Line 157 | cm_loadBTDF(char *fname)
157                  return(cm_bsdf_Lamb(diffBSDF));
158          }
159          if (tdf->ncomp != 1 || tdf->comp[0].func != &SDhandleMtx) {
160 <                sprintf(errmsg, "unsupported BSDF '%s'", fpath);
160 >                sprintf(errmsg, "unsupported BSDF '%s'", fname);
161                  error(USER, errmsg);
162          }
163                                          /* convert BTDF to matrix */

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines