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

Comparing ray/src/rt/m_brdf.c (file contents):
Revision 2.2 by greg, Mon Nov 25 09:51:03 1991 UTC vs.
Revision 2.4 by greg, Wed Oct 14 12:30:54 1992 UTC

# Line 85 | Line 85 | double  omega;                 /* light source size */
85          double  dtmp;
86          COLOR  ctmp;
87          FVECT  ldx;
88 <        double  pt[MAXDIM];
88 >        double  lddx[3], pt[MAXDIM];
89          register char   **sa;
90          register int    i;
91  
# Line 127 | Line 127 | double  omega;                 /* light source size */
127                                          /* transform light vector */
128          multv3(ldx, ldir, funcxf.xfm);
129          for (i = 0; i < 3; i++)
130 <                ldx[i] /= funcxf.sca;
130 >                lddx[i] = ldx[i]/funcxf.sca;
131                                          /* compute BRTDF */
132          if (np->mp->otype == MAT_BRTDF) {
133 <                colval(ctmp,RED) = funvalue(sa[6], 3, ldx);
133 >                colval(ctmp,RED) = funvalue(sa[6], 3, lddx);
134                  if (!strcmp(sa[7],sa[6]))
135                          colval(ctmp,GRN) = colval(ctmp,RED);
136                  else
137 <                        colval(ctmp,GRN) = funvalue(sa[7], 3, ldx);
137 >                        colval(ctmp,GRN) = funvalue(sa[7], 3, lddx);
138                  if (!strcmp(sa[8],sa[6]))
139                          colval(ctmp,BLU) = colval(ctmp,RED);
140                  else if (!strcmp(sa[8],sa[7]))
141                          colval(ctmp,BLU) = colval(ctmp,GRN);
142                  else
143 <                        colval(ctmp,BLU) = funvalue(sa[8], 3, ldx);
143 >                        colval(ctmp,BLU) = funvalue(sa[8], 3, lddx);
144                  dtmp = bright(ctmp);
145          } else if (np->dp == NULL) {
146 <                dtmp = funvalue(sa[0], 3, ldx);
146 >                dtmp = funvalue(sa[0], 3, lddx);
147                  setcolor(ctmp, dtmp, dtmp, dtmp);
148          } else {
149                  for (i = 0; i < np->dp->nd; i++)
150 <                        pt[i] = funvalue(sa[3+i], 3, ldx);
150 >                        pt[i] = funvalue(sa[3+i], 3, lddx);
151                  dtmp = datavalue(np->dp, pt);
152                  dtmp = funvalue(sa[0], 1, &dtmp);
153                  setcolor(ctmp, dtmp, dtmp, dtmp);
# Line 267 | Line 267 | register RAY  *r;
267                                  for (i = 0; i < 3; i++) /* perturb direction */
268                                          sr.rdir[i] = r->rdir[i] -
269                                                          .75*r->pert[i];
270 <                                normalize(sr.rdir);
270 >                                if (normalize(sr.rdir) == 0.0) {
271 >                                        objerror(m, WARNING, "illegal perturbation");
272 >                                        VCOPY(sr.rdir, r->rdir);
273 >                                }
274                          } else {
275                                  VCOPY(sr.rdir, r->rdir);
276                                  transtest = 2;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines