| 145 |  | r->robj = OVOID; | 
| 146 |  | r->ro = NULL; | 
| 147 |  | r->rox = NULL; | 
| 148 | < | r->rt = r->rot = FHUGE; | 
| 148 | > | r->rxt = r->rmt = r->rot = FHUGE; | 
| 149 |  | r->pert[0] = r->pert[1] = r->pert[2] = 0.0; | 
| 150 |  | r->uv[0] = r->uv[1] = 0.0; | 
| 151 |  | setcolor(r->pcol, 1.0, 1.0, 1.0); | 
| 152 | + | setcolor(r->mcol, 0.0, 0.0, 0.0); | 
| 153 |  | setcolor(r->rcol, 0.0, 0.0, 0.0); | 
| 154 |  | } | 
| 155 |  |  | 
| 196 |  | VCOPY(tr.rdir, r->rdir); | 
| 197 |  | rayvalue(&tr); | 
| 198 |  | copycolor(r->rcol, tr.rcol); | 
| 199 | < | r->rt = r->rot + tr.rt; | 
| 199 | > | r->rmt = r->rot + tr.rmt; | 
| 200 | > | r->rxt = r->rot + tr.rxt; | 
| 201 |  | } | 
| 202 |  |  | 
| 203 |  |  | 
| 209 |  | { | 
| 210 |  | OBJREC  *m; | 
| 211 |  |  | 
| 212 | < | r->rt = r->rot;                 /* preset effective ray length */ | 
| 212 | > | r->rxt = r->rmt = r->rot;       /* preset effective ray length */ | 
| 213 |  | for ( ; mod != OVOID; mod = m->omod) { | 
| 214 |  | m = objptr(mod); | 
| 215 |  | /****** unnecessary test since modifier() is always called | 
| 308 |  | ) | 
| 309 |  | { | 
| 310 |  | RAY  fr, br; | 
| 311 | + | double  mfore, mback; | 
| 312 |  | int  foremat, backmat; | 
| 313 |  | int  i; | 
| 314 |  | /* bound coefficient */ | 
| 355 |  | scalecolor(br.rcol, 1.0-coef); | 
| 356 |  | copycolor(r->rcol, fr.rcol); | 
| 357 |  | addcolor(r->rcol, br.rcol); | 
| 358 | < | r->rt = bright(fr.rcol) > bright(br.rcol) ? fr.rt : br.rt; | 
| 358 | > | mfore = bright(fr.mcol); mback = bright(br.mcol); | 
| 359 | > | r->rmt = mfore > mback ? fr.rmt : br.rmt; | 
| 360 | > | r->rxt = bright(fr.rcol)-mfore > bright(br.rcol)-mback ? | 
| 361 | > | fr.rxt : br.rxt; | 
| 362 |  | return(1); | 
| 363 |  | } | 
| 364 |  |  |