167 |
|
} else |
168 |
|
dtmp = 0.0; |
169 |
|
/* gaussian */ |
170 |
< |
dtmp = exp(-dtmp) / (PI * np->pdot * sqrt(au2*av2)); |
170 |
> |
dtmp = exp(-dtmp) * (1.0/PI) * sqrt(-ldot/(np->pdot*au2*av2)); |
171 |
|
/* worth using? */ |
172 |
|
if (dtmp > FTINY) { |
173 |
|
copycolor(ctmp, np->mcolor); |
214 |
|
nd.specfl = 0; |
215 |
|
nd.u_alpha = m->oargs.farg[4]; |
216 |
|
nd.v_alpha = m->oargs.farg[5]; |
217 |
< |
if (nd.u_alpha < FTINY || nd.v_alpha <= FTINY) |
217 |
> |
if (nd.u_alpha <= FTINY || nd.v_alpha <= FTINY) |
218 |
|
objerror(m, USER, "roughness too small"); |
219 |
|
|
220 |
|
nd.pdot = raynormal(nd.pnorm, r); /* perturb normal */ |
380 |
|
for (i = 0; i < 3; i++) |
381 |
|
sr.rdir[i] = r->rdir[i] + d*h[i]; |
382 |
|
if (DOT(sr.rdir, r->ron) > FTINY) { |
383 |
+ |
checknorm(sr.rdir); |
384 |
|
rayvalue(&sr); |
385 |
|
multcolor(sr.rcol, sr.rcoef); |
386 |
|
addcolor(r->rcol, sr.rcol); |