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

Comparing ray/src/rt/m_wgmdf.c (file contents):
Revision 2.1 by greg, Mon Dec 9 00:44:29 2024 UTC vs.
Revision 2.2 by greg, Tue Dec 10 03:16:13 2024 UTC

# Line 510 | Line 510 | m_wgmdf(OBJREC *m, RAY *r)
510          }
511          if ((m->oargs.nsargs < 13) | (m->oargs.nfargs < 9))
512                  objerror(m, USER, "bad number of arguments");
513 +
514 +        if (r->crtype & SHADOW && !strcmp(m->oargs.sarg[5], "0"))
515 +                return(1);              /* first shadow test */
516          clr_comps(&wd);
517          wd.rp = r;
518          wd.mtp = m;
519          wd.mf = getfunc(m, 12, 0xEEE, 1);
520 +        set_dcomp(&wd, 0);              /* calls main modifier */
521          setfunc(m, r);                  /* get local u vector */
522          errno = 0;
523          for (i = 0; i < 3; i++)
# Line 523 | Line 527 | m_wgmdf(OBJREC *m, RAY *r)
527          else if (wd.mf->fxp != &unitxf)
528                  multv3(wd.ulocal, wd.ulocal, wd.mf->fxp->xfm);
529  
526        set_dcomp(&wd, 0);              /* call this first */
527        set_dcomp(&wd, 1);              /* call this second */
530          set_scomp(&wd, 1);              /* sets SP_TPURE */
531          if (r->crtype & SHADOW && !(wd.specfl & SP_TPURE))
532 <                return(1);              /* early shadow test */
532 >                return(1);              /* second shadow test */
533 >        set_dcomp(&wd, 1);
534          set_scomp(&wd, 0);
535          wd.specfl |= SP_FLAT*(r->ro != NULL && isflat(r->ro->otype));
536                                          /* apply Fresnel adjustments? */

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines