228 |
|
m->oargs.farg[1], |
229 |
|
m->oargs.farg[2]); |
230 |
|
/* fix orientation */ |
231 |
< |
if (r->rod < 0.0) |
231 |
> |
if (m->otype != MAT_BRTDF && r->rod < 0.0) |
232 |
|
flipsurface(r); |
233 |
|
/* get modifiers */ |
234 |
|
raytexture(r, m->omod); |
267 |
|
for (i = 0; i < 3; i++) /* perturb direction */ |
268 |
|
sr.rdir[i] = r->rdir[i] - |
269 |
|
.75*r->pert[i]; |
270 |
< |
normalize(sr.rdir); |
270 |
> |
if (normalize(sr.rdir) == 0.0) { |
271 |
> |
objerror(m, WARNING, "illegal perturbation"); |
272 |
> |
VCOPY(sr.rdir, r->rdir); |
273 |
> |
} |
274 |
|
} else { |
275 |
|
VCOPY(sr.rdir, r->rdir); |
276 |
|
transtest = 2; |