| 1 |
|
#ifndef lint |
| 2 |
< |
static const char RCSid[] = "$Id$"; |
| 2 |
> |
static const char RCSid[] = "$Id$"; |
| 3 |
|
#endif |
| 4 |
|
/* |
| 5 |
|
* normal.c - shading function for normal materials. |
| 23 |
|
#define MAXITER 10 /* maximum # specular ray attempts */ |
| 24 |
|
#endif |
| 25 |
|
/* estimate of Fresnel function */ |
| 26 |
< |
#define FRESNE(ci) (exp(-6.0*(ci)) - 0.00247875217) |
| 26 |
> |
#define FRESNE(ci) (exp(-5.85*(ci)) - 0.00287989916) |
| 27 |
|
|
| 28 |
|
static void gaussamp(); |
| 29 |
|
|
| 197 |
|
nd.alpha2 = m->oargs.farg[4]; |
| 198 |
|
if ((nd.alpha2 *= nd.alpha2) <= FTINY) |
| 199 |
|
nd.specfl |= SP_PURE; |
| 200 |
– |
if (r->ro != NULL && isflat(r->ro->otype)) |
| 201 |
– |
nd.specfl |= SP_FLAT; |
| 200 |
|
|
| 201 |
< |
if (hastexture = DOT(r->pert,r->pert) > FTINY*FTINY) |
| 201 |
> |
if (hastexture = (DOT(r->pert,r->pert) > FTINY*FTINY)) { |
| 202 |
|
nd.pdot = raynormal(nd.pnorm, r); /* perturb normal */ |
| 203 |
< |
else { |
| 203 |
> |
} else { |
| 204 |
|
VCOPY(nd.pnorm, r->ron); |
| 205 |
|
nd.pdot = r->rod; |
| 206 |
|
} |
| 207 |
+ |
if (r->ro != NULL && isflat(r->ro->otype)) |
| 208 |
+ |
nd.specfl |= SP_FLAT; |
| 209 |
|
if (nd.pdot < .001) |
| 210 |
|
nd.pdot = .001; /* non-zero for dirnorm() */ |
| 211 |
|
multcolor(nd.mcolor, r->pcol); /* modify material color */ |