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.70 by greg, Thu Mar 17 21:53:42 2016 UTC vs.
Revision 2.71 by greg, Mon May 16 17:32:10 2016 UTC

# Line 199 | Line 199 | raytrans(                      /* transmit ray as is */
199   }
200  
201  
202 + /* Macro for test to see if BSDF material uses proxy */
203 + #define isBSDFproxy(m)  ((m)->otype == MAT_BSDF && (m)->oargs.nsargs && \
204 +                                strcmp((m)->oargs.sarg[0], "0"))
205 +
206 +
207   int
208   rayshade(               /* shade ray r with material mod */
209          RAY  *r,
# Line 207 | Line 212 | rayshade(              /* shade ray r with material mod */
212   {
213          OBJREC  *m;
214  
215 <        r->rt = r->rot;                 /* set effective ray length */
215 >        r->rt = r->rot;                 /* preset effective ray length */
216          for ( ; mod != OVOID; mod = m->omod) {
217                  m = objptr(mod);
218                  /****** unnecessary test since modifier() is always called
# Line 218 | Line 223 | rayshade(              /* shade ray r with material mod */
223                  ******/
224                                          /* hack for irradiance calculation */
225                  if (do_irrad && !(r->crtype & ~(PRIMARY|TRANS)) &&
226 +                                (ofun[m->otype].flags & (T_M|T_X)) &&
227                                  m->otype != MAT_CLIP &&
228 <                                (ofun[m->otype].flags & (T_M|T_X))) {
228 >                                !isBSDFproxy(m)) {
229                          if (irr_ignore(m->otype)) {
230                                  raytrans(r);
231                                  return(1);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines