--- ray/src/rt/aniso.c 1992/04/20 09:25:47 2.13 +++ ray/src/rt/aniso.c 1992/04/22 09:05:27 2.14 @@ -34,6 +34,8 @@ extern double specjitter; /* specular sampling jitte * 8 red grn blu rspec u-rough v-rough trans tspec */ +#define BSPEC(m) (6.0) /* specularity parameter b */ + /* specularity flags */ #define SP_REFL 01 /* has reflected specular component */ #define SP_TRAN 02 /* has transmitted specular */ @@ -196,6 +198,11 @@ register RAY *r; else setcolor(nd.scolor, 1.0, 1.0, 1.0); scalecolor(nd.scolor, nd.rspec); + /* improved model */ + dtmp = exp(-BSPEC(m)*nd.pdot); + for (i = 0; i < 3; i++) + colval(nd.scolor,i) += (1.0-colval(nd.scolor,i))*dtmp; + nd.rspec += (1.0-nd.rspec)*dtmp; /* check threshold */ if (specthresh > FTINY && (specthresh >= 1.-FTINY ||