--- ray/src/common/loadbsdf.c 2012/09/02 15:33:15 3.7 +++ 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.7 2012/09/02 15:33:15 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) @@ -60,11 +60,16 @@ loadBSDF(char *fname) checkDF(sd->name, sd->rLambBack.cieY, sd->rb, "rear reflection"); checkDF(sd->name, sd->tLamb.cieY, sd->tf, "front transmission"); checkDF(sd->name, sd->tLamb.cieY, sd->tb, "back transmission"); -#if 0 +#ifdef DEBUG +{ +float rgb[3]; fprintf(stderr, "Loaded BSDF '%s' (file \"%s\")\n", sd->name, pname); -fprintf(stderr, "Front diffuse reflectance: %.3f%%\n", sd->rLambFront.cieY*100.); -fprintf(stderr, "Back diffuse reflectance: %.3f%%\n", sd->rLambBack.cieY*100.); -fprintf(stderr, "Diffuse transmittance: %.3f%%\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: %.3f%%\n", sd->rf->maxHemi*100.); @@ -77,7 +82,13 @@ 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); }