--- ray/src/common/loadbsdf.c 2011/02/19 23:42:09 3.3 +++ ray/src/common/loadbsdf.c 2020/05/14 19:20:13 3.12 @@ -1,5 +1,5 @@ #ifndef lint -static const char RCSid[] = "$Id: loadbsdf.c,v 3.3 2011/02/19 23:42:09 greg Exp $"; +static const char RCSid[] = "$Id: loadbsdf.c,v 3.12 2020/05/14 19:20:13 greg Exp $"; #endif /* * Simple interface for loading BSDF, Radiance-specific search @@ -15,9 +15,9 @@ char * transSDError(SDError ec) { if (!SDerrorDetail[0]) - return(strcpy(errmsg, SDerrorEnglish[ec])); + return(strcpy(errmsg, SDerrorList[ec])); - sprintf(errmsg, "%s: %s", SDerrorEnglish[ec], SDerrorDetail); + sprintf(errmsg, "%s: %s", SDerrorList[ec], SDerrorDetail); return(errmsg); } @@ -50,7 +50,7 @@ loadBSDF(char *fname) pname = getpath(fname, getrlibpath(), R_OK); if (pname == NULL) { sprintf(errmsg, "cannot find BSDF file \"%s\"", fname); - error(USER, errmsg); + error(SYSTEM, errmsg); } ec = SDloadFile(sd, pname); if (ec) @@ -58,22 +58,37 @@ loadBSDF(char *fname) /* simple checks */ checkDF(sd->name, sd->rLambFront.cieY, sd->rf, "front reflection"); checkDF(sd->name, sd->rLambBack.cieY, sd->rb, "rear reflection"); - checkDF(sd->name, sd->tLamb.cieY, sd->tf, "transmission"); -#if 0 + checkDF(sd->name, sd->tLamb.cieY, sd->tf, "front transmission"); + checkDF(sd->name, sd->tLamb.cieY, sd->tb, "back transmission"); +#ifdef DEBUG +{ +float rgb[3]; fprintf(stderr, "Loaded BSDF '%s' (file \"%s\")\n", sd->name, pname); -fprintf(stderr, "Front diffuse reflectance: %.1f%%\n", sd->rLambFront.cieY*100.); -fprintf(stderr, "Back diffuse reflectance: %.1f%%\n", sd->rLambBack.cieY*100.); -fprintf(stderr, "Diffuse transmittance: %.1f%%\n", sd->tLamb.cieY*100.); +ccy2rgb(&sd->rLambFront.spec, sd->rLambFront.cieY, rgb); +fprintf(stderr, "Front diffuse RGB: %.4f %.4f %.4f\n", rgb[0], rgb[1], rgb[2]); +ccy2rgb(&sd->rLambBack.spec, sd->rLambBack.cieY, rgb); +fprintf(stderr, "Back diffuse RGB: %.4f %.4f %.4f\n", rgb[0], rgb[1], rgb[2]); +ccy2rgb(&sd->tLamb.spec, sd->tLamb.cieY, rgb); +fprintf(stderr, "Diffuse RGB transmittance: %.4f %.4f %.4f\n", rgb[0], rgb[1], rgb[2]); if (sd->rf) -fprintf(stderr, "Maximum direct hemispherical front reflection: %.1f%%\n", +fprintf(stderr, "Maximum direct hemispherical front reflection: %.3f%%\n", sd->rf->maxHemi*100.); if (sd->rb) -fprintf(stderr, "Maximum direct hemispherical back reflection: %.1f%%\n", +fprintf(stderr, "Maximum direct hemispherical back reflection: %.3f%%\n", sd->rb->maxHemi*100.); if (sd->tf) -fprintf(stderr, "Maximum direct hemispherical transmission: %.1f%%\n", +fprintf(stderr, "Maximum direct hemispherical front transmission: %.3f%%\n", sd->tf->maxHemi*100.); +if (sd->tb) +fprintf(stderr, "Maximum direct hemispherical back transmission: %.3f%%\n", +sd->tb->maxHemi*100.); +} #endif SDretainSet = SDretainAll; /* keep data in core */ +#ifdef SMLMEM + SDmaxCache = 5L*1024*1024; +#else + SDmaxCache = 250L*1024*1024; +#endif return(sd); }