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

Comparing ray/src/rt/normal.c (file contents):
Revision 1.3 by greg, Wed Jun 7 08:35:14 1989 UTC vs.
Revision 1.7 by greg, Mon Oct 15 20:39:35 1990 UTC

# Line 70 | Line 70 | double  omega;                 /* light source size */
70  
71          if (ldot > FTINY && np->rdiff > FTINY) {
72                  /*
73 <                 *  Compute and add diffuse component to returned color.
74 <                 *  The diffuse component will always be modified by the
75 <                 *  color of the material.
73 >                 *  Compute and add diffuse reflected component to returned
74 >                 *  color.  The diffuse reflected component will always be
75 >                 *  modified by the color of the material.
76                   */
77                  copycolor(ctmp, np->mcolor);
78                  dtmp = ldot * omega * np->rdiff / PI;
# Line 107 | Line 107 | double  omega;                 /* light source size */
107          }
108          if (ldot < -FTINY && np->tspec > FTINY && np->alpha2 > FTINY) {
109                  /*
110 <                 *  Compute specular transmission.
110 >                 *  Compute specular transmission.  Specular transmission
111 >                 *  is unaffected by material color.
112                   */
113                                                  /* roughness + source */
114                  dtmp = np->alpha2 + omega/(2.0*PI);
# Line 115 | Line 116 | double  omega;                 /* light source size */
116                  dtmp = exp((DOT(np->pr->rdir,ldir)-1.)/dtmp)/(2.*PI)/dtmp;
117                                                  /* worth using? */
118                  if (dtmp > FTINY) {
118                        copycolor(ctmp, np->mcolor);
119                          dtmp *= np->tspec * omega;
120 <                        scalecolor(ctmp, dtmp);
120 >                        setcolor(ctmp, dtmp, dtmp, dtmp);
121                          addcolor(cval, ctmp);
122                  }
123          }
# Line 129 | Line 129 | register OBJREC  *m;
129   register RAY  *r;
130   {
131          NORMDAT  nd;
132        double  ldot;
133        double  omega;
132          double  dtmp;
133          COLOR  ctmp;
134          register int  i;
# Line 156 | Line 154 | register RAY  *r;
154          raytexture(r, m->omod);
155          nd.pdot = raynormal(nd.pnorm, r);       /* perturb normal */
156          multcolor(nd.mcolor, r->pcol);          /* modify material color */
157 +        r->rt = r->rot;                         /* default ray length */
158                                                  /* get specular component */
159          nd.rspec = m->oargs.farg[3];
160  
# Line 200 | Line 199 | register RAY  *r;
199                          rayvalue(&lr);
200                          scalecolor(lr.rcol, nd.tspec);
201                          addcolor(r->rcol, lr.rcol);
202 +                        if (nd.tspec > .5)
203 +                                r->rt = r->rot + lr.rt;
204                  }
205          }
206          if (r->crtype & SHADOW)                 /* the rest is shadow */

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines