--- ray/src/rt/m_brdf.c 2014/01/25 18:27:39 2.31 +++ ray/src/rt/m_brdf.c 2015/08/06 16:06:06 2.32 @@ -1,5 +1,5 @@ #ifndef lint -static const char RCSid[] = "$Id: m_brdf.c,v 2.31 2014/01/25 18:27:39 greg Exp $"; +static const char RCSid[] = "$Id: m_brdf.c,v 2.32 2015/08/06 16:06:06 greg Exp $"; #endif /* * Shading for materials with arbitrary BRDF's @@ -140,17 +140,19 @@ dirbrdf( /* compute source contribution */ lddx[3] = omega; /* compute BRTDF */ if (np->mp->otype == MAT_BRTDF) { - if (sa[6][0] == '0') /* special case */ + if (sa[6][0] == '0' && !sa[6][1]) /* special case */ colval(ctmp,RED) = 0.0; else colval(ctmp,RED) = funvalue(sa[6], 4, lddx); - if (sa[7][0] == '0') + if (sa[7][0] == '0' && !sa[7][1]) colval(ctmp,GRN) = 0.0; else if (!strcmp(sa[7],sa[6])) colval(ctmp,GRN) = colval(ctmp,RED); else colval(ctmp,GRN) = funvalue(sa[7], 4, lddx); - if (!strcmp(sa[8],sa[6])) + if (sa[8][0] == '0' && !sa[8][1]) + colval(ctmp,BLU) = 0.0; + else if (!strcmp(sa[8],sa[6])) colval(ctmp,BLU) = colval(ctmp,RED); else if (!strcmp(sa[8],sa[7])) colval(ctmp,BLU) = colval(ctmp,GRN);