--- ray/src/rt/glass.c 2013/08/07 05:10:09 2.20 +++ ray/src/rt/glass.c 2014/01/25 18:27:39 2.21 @@ -1,5 +1,5 @@ #ifndef lint -static const char RCSid[] = "$Id: glass.c,v 2.20 2013/08/07 05:10:09 greg Exp $"; +static const char RCSid[] = "$Id: glass.c,v 2.21 2014/01/25 18:27:39 greg Exp $"; #endif /* * glass.c - simpler shading function for thin glass surfaces. @@ -65,6 +65,11 @@ m_glass( /* color a ray which hit a thin glass surfac rindex = m->oargs.farg[3]; /* use their value */ else objerror(m, USER, "bad arguments"); + /* check back face visibility */ + if (!backvis && r->rod <= 0.0) { + raytrans(r); + return(1); + } /* check transmission */ setcolor(mcolor, m->oargs.farg[0], m->oargs.farg[1], m->oargs.farg[2]); if ((hastrans = (intens(mcolor) > 1e-15))) {