66 |
|
multcolor(mcolor, r->pcol); |
67 |
|
/* compute reflected ray */ |
68 |
|
if (r->rsrc >= 0) { /* relayed light source */ |
69 |
< |
rayorigin(&nr, r, REFLECTED, 1.); |
69 |
> |
rayorigin(&nr, REFLECTED, r, mcolor); |
70 |
|
/* ignore textures */ |
71 |
|
for (i = 0; i < 3; i++) |
72 |
|
nr.rdir[i] = r->rdir[i] + 2.*r->rod*r->ron[i]; |
76 |
|
FVECT pnorm; |
77 |
|
double pdot; |
78 |
|
|
79 |
< |
if (rayorigin(&nr, r, REFLECTED, bright(mcolor)) < 0) |
79 |
> |
if (rayorigin(&nr, REFLECTED, r, mcolor) < 0) |
80 |
|
return(1); |
81 |
|
if (DOT(r->pert,r->pert) > FTINY*FTINY) { |
82 |
|
pdot = raynormal(pnorm, r); /* use textures */ |
90 |
|
nr.rdir[i] = r->rdir[i] + 2.*r->rod*r->ron[i]; |
91 |
|
} |
92 |
|
rayvalue(&nr); |
93 |
< |
multcolor(nr.rcol, mcolor); |
93 |
> |
multcolor(nr.rcol, nr.rcoef); |
94 |
|
addcolor(r->rcol, nr.rcol); |
95 |
|
if (rpure && r->ro != NULL && isflat(r->ro->otype)) |
96 |
|
r->rt = r->rot + nr.rt; |