--- ray/src/rt/m_brdf.c 1992/06/30 18:28:22 2.3 +++ ray/src/rt/m_brdf.c 1993/05/20 10:08:24 2.5 @@ -228,7 +228,7 @@ register RAY *r; m->oargs.farg[1], m->oargs.farg[2]); /* fix orientation */ - if (r->rod < 0.0) + if (m->otype != MAT_BRTDF && r->rod < 0.0) flipsurface(r); /* get modifiers */ raytexture(r, m->omod); @@ -267,7 +267,10 @@ register RAY *r; for (i = 0; i < 3; i++) /* perturb direction */ sr.rdir[i] = r->rdir[i] - .75*r->pert[i]; - normalize(sr.rdir); + if (normalize(sr.rdir) == 0.0) { + objerror(m, WARNING, "illegal perturbation"); + VCOPY(sr.rdir, r->rdir); + } } else { VCOPY(sr.rdir, r->rdir); transtest = 2;