--- ray/src/common/bsdf_m.c 2021/03/27 16:40:46 3.40 +++ ray/src/common/bsdf_m.c 2021/12/07 23:49:50 3.43 @@ -1,5 +1,5 @@ #ifndef lint -static const char RCSid[] = "$Id: bsdf_m.c,v 3.40 2021/03/27 16:40:46 greg Exp $"; +static const char RCSid[] = "$Id: bsdf_m.c,v 3.43 2021/12/07 23:49:50 greg Exp $"; #endif /* * bsdf_m.c @@ -709,18 +709,21 @@ SDloadMtx(SDData *sd, ezxml_t wtl) /* separate diffuse components */ sd->rf = extract_diffuse(&sd->rLambFront, sd->rf); sd->rb = extract_diffuse(&sd->rLambBack, sd->rb); - if (sd->tb != NULL) - sd->tb = extract_diffuse(&sd->tLamb, sd->tb); - if (sd->tf != NULL) - sd->tf = extract_diffuse(&sd->tLamb, sd->tf); + sd->tf = extract_diffuse(&sd->tLambFront, sd->tf); + if (sd->tb != NULL) { + sd->tb = extract_diffuse(&sd->tLambBack, sd->tb); + if (sd->tf == NULL) + sd->tLambFront = sd->tLambBack; + } else if (sd->tf != NULL) + sd->tLambBack = sd->tLambFront; /* return success */ return SDEnone; } /* Get Matrix BSDF value */ static int -SDgetMtxBSDF(float coef[SDmaxCh], const FVECT outVec, - const FVECT inVec, SDComponent *sdc) +SDgetMtxBSDF(float coef[SDmaxCh], const FVECT inVec, + const FVECT outVec, SDComponent *sdc) { const SDMat *dp; int i_ndx, o_ndx;