94 |
|
* modified by the color of the material. |
95 |
|
*/ |
96 |
|
copycolor(ctmp, np->mcolor); |
97 |
< |
dtmp = ldot * omega * np->rdiff / PI; |
97 |
> |
dtmp = ldot * omega * np->rdiff * (1.0/PI); |
98 |
|
scalecolor(ctmp, dtmp); |
99 |
|
addcolor(cval, ctmp); |
100 |
|
} |
105 |
|
*/ |
106 |
|
/* add source width if flat */ |
107 |
|
if (np->specfl & SP_FLAT) |
108 |
< |
au2 = av2 = omega/(4.0*PI); |
108 |
> |
au2 = av2 = omega * (0.25/PI); |
109 |
|
else |
110 |
|
au2 = av2 = 0.0; |
111 |
|
au2 += np->u_alpha*np->u_alpha; |
122 |
|
/* gaussian */ |
123 |
|
dtmp = DOT(np->pnorm, h); |
124 |
|
dtmp = (dtmp1 + dtmp2) / (dtmp*dtmp); |
125 |
< |
dtmp = exp(-dtmp) * (0.25/PI) |
126 |
< |
* sqrt(ldot/(np->pdot*au2*av2)); |
125 |
> |
dtmp = exp(-dtmp) / (4.0*PI * np->pdot * sqrt(au2*av2)); |
126 |
|
/* worth using? */ |
127 |
|
if (dtmp > FTINY) { |
128 |
|
copycolor(ctmp, np->scolor); |
136 |
|
* Compute diffuse transmission. |
137 |
|
*/ |
138 |
|
copycolor(ctmp, np->mcolor); |
139 |
< |
dtmp = -ldot * omega * np->tdiff / PI; |
139 |
> |
dtmp = -ldot * omega * np->tdiff * (1.0/PI); |
140 |
|
scalecolor(ctmp, dtmp); |
141 |
|
addcolor(cval, ctmp); |
142 |
|
} |
146 |
|
* is always modified by material color. |
147 |
|
*/ |
148 |
|
/* roughness + source */ |
149 |
< |
au2 = av2 = omega / PI; |
149 |
> |
au2 = av2 = omega * (1.0/PI); |
150 |
|
au2 += np->u_alpha*np->u_alpha; |
151 |
|
av2 += np->v_alpha*np->v_alpha; |
152 |
|
/* "half vector" */ |
167 |
|
} else |
168 |
|
dtmp = 0.0; |
169 |
|
/* gaussian */ |
170 |
< |
dtmp = exp(-dtmp) * (1.0/PI) |
172 |
< |
* sqrt(-ldot/(np->pdot*au2*av2)); |
170 |
> |
dtmp = exp(-dtmp) / (PI * np->pdot * sqrt(au2*av2)); |
171 |
|
/* worth using? */ |
172 |
|
if (dtmp > FTINY) { |
173 |
|
copycolor(ctmp, np->mcolor); |