| 41 |
|
mg_ehand[MG_E_CMIX] = c_hcolor; |
| 42 |
|
mg_ehand[MG_E_CSPEC] = c_hcolor; |
| 43 |
|
mg_ehand[MG_E_CXY] = c_hcolor; |
| 44 |
+ |
mg_ehand[MG_E_CCT] = c_hcolor; |
| 45 |
|
mg_ehand[MG_E_CYL] = r_cyl; |
| 46 |
|
mg_ehand[MG_E_ED] = c_hmaterial; |
| 47 |
|
mg_ehand[MG_E_FACE] = r_face; |
| 48 |
|
mg_ehand[MG_E_IES] = r_ies; |
| 49 |
+ |
mg_ehand[MG_E_IR] = c_hmaterial; |
| 50 |
|
mg_ehand[MG_E_MATERIAL] = c_hmaterial; |
| 51 |
|
mg_ehand[MG_E_NORMAL] = c_hvertex; |
| 52 |
|
mg_ehand[MG_E_OBJECT] = obj_handler; |
| 429 |
|
c_cmaterial->clock = 0; |
| 430 |
|
if (c_cmaterial->ed > .1) { /* emitter */ |
| 431 |
|
cvtcolor(radrgb, &c_cmaterial->ed_c, |
| 432 |
< |
emult*c_cmaterial->ed/WHTEFFICACY); |
| 432 |
> |
emult*c_cmaterial->ed/(PI*WHTEFFICACY)); |
| 433 |
|
if (glowdist < FHUGE) { /* do a glow */ |
| 434 |
|
fprintf(matfp, "\nvoid glow %s\n0\n0\n", mname); |
| 435 |
|
fprintf(matfp, "4 %f %f %f %f\n", colval(radrgb,RED), |
| 447 |
|
c_cmaterial->rs + c_cmaterial->ts; |
| 448 |
|
if (d < 0. | d > 1.) |
| 449 |
|
return(NULL); |
| 450 |
+ |
/* check for glass/dielectric */ |
| 451 |
+ |
if (c_cmaterial->nr > 1.1 && |
| 452 |
+ |
c_cmaterial->ts > .25 && c_cmaterial->rs <= .125 && |
| 453 |
+ |
c_cmaterial->td <= .01 && c_cmaterial->rd <= .01 && |
| 454 |
+ |
c_cmaterial->rs_a <= .01 && c_cmaterial->ts_a <= .01) { |
| 455 |
+ |
cvtcolor(radrgb, &c_cmaterial->ts_c, |
| 456 |
+ |
c_cmaterial->ts + c_cmaterial->rs); |
| 457 |
+ |
if (c_cmaterial->sided) { /* dielectric */ |
| 458 |
+ |
colval(radrgb,RED) = pow(colval(radrgb,RED), |
| 459 |
+ |
1./C_1SIDEDTHICK); |
| 460 |
+ |
colval(radrgb,GRN) = pow(colval(radrgb,GRN), |
| 461 |
+ |
1./C_1SIDEDTHICK); |
| 462 |
+ |
colval(radrgb,BLU) = pow(colval(radrgb,BLU), |
| 463 |
+ |
1./C_1SIDEDTHICK); |
| 464 |
+ |
fprintf(matfp, "\nvoid dielectric %s\n0\n0\n", mname); |
| 465 |
+ |
fprintf(matfp, "5 %g %g %g %f 0\n", colval(radrgb,RED), |
| 466 |
+ |
colval(radrgb,GRN), colval(radrgb,BLU), |
| 467 |
+ |
c_cmaterial->nr); |
| 468 |
+ |
return(mname); |
| 469 |
+ |
} |
| 470 |
+ |
/* glass */ |
| 471 |
+ |
fprintf(matfp, "\nvoid glass %s\n0\n0\n", mname); |
| 472 |
+ |
fprintf(matfp, "4 %f %f %f %f\n", colval(radrgb,RED), |
| 473 |
+ |
colval(radrgb,GRN), colval(radrgb,BLU), |
| 474 |
+ |
c_cmaterial->nr); |
| 475 |
+ |
return(mname); |
| 476 |
+ |
} |
| 477 |
|
/* check for trans */ |
| 478 |
|
if (c_cmaterial->td > .01 || c_cmaterial->ts > .01) { |
| 479 |
|
double ts, a5, a6; |