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

Comparing ray/src/rt/raytrace.c (file contents):
Revision 2.68 by greg, Fri May 22 09:19:11 2015 UTC vs.
Revision 2.72 by greg, Tue Jan 9 05:01:15 2018 UTC

# Line 51 | Line 51 | rayorigin(             /* start new ray from old one */
51                  setcolor(r->rcoef, 1., 1., 1.);
52          } else {
53                  rw = intens(rc);
54 +                if (rw > 1.0)
55 +                        rw = 1.0;               /* avoid calculation growth */
56                  if (rc != r->rcoef)
57                          copycolor(r->rcoef, rc);
58          }
# Line 108 | Line 110 | rayorigin(             /* start new ray from old one */
110          if (r->crtype & SHADOW)                 /* shadow commitment */
111                  return(0);
112                                                  /* ambient in photon map? */
113 <        if (photonMapping && ro != NULL && ro->crtype & AMBIENT)
114 <                return(-1);
113 >        if (ro != NULL && ro->crtype & AMBIENT) {
114 >                if (causticPhotonMapping)
115 >                        return(-1);
116 >                if (photonMapping && rt != TRANS)
117 >                        return(-1);
118 >        }
119          if (maxdepth <= 0 && rc != NULL) {      /* Russian roulette */
120                  if (minweight <= 0.0)
121                          error(USER, "zero ray weight in Russian roulette");
# Line 201 | Line 207 | rayshade(              /* shade ray r with material mod */
207   {
208          OBJREC  *m;
209  
210 <        r->rt = r->rot;                 /* set effective ray length */
210 >        r->rt = r->rot;                 /* preset effective ray length */
211          for ( ; mod != OVOID; mod = m->omod) {
212                  m = objptr(mod);
213                  /****** unnecessary test since modifier() is always called
# Line 212 | Line 218 | rayshade(              /* shade ray r with material mod */
218                  ******/
219                                          /* hack for irradiance calculation */
220                  if (do_irrad && !(r->crtype & ~(PRIMARY|TRANS)) &&
221 <                                m->otype != MAT_CLIP &&
222 <                                (ofun[m->otype].flags & (T_M|T_X))) {
223 <                        if (irr_ignore(m->otype)) {
221 >                                (ofun[m->otype].flags & (T_M|T_X)) &&
222 >                                m->otype != MAT_CLIP) {
223 >                        if (istransp(m->otype) || isBSDFproxy(m)) {
224                                  raytrans(r);
225                                  return(1);
226                          }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines