--- ray/src/rt/rcontrib.c 2016/04/27 21:11:32 2.28 +++ ray/src/rt/rcontrib.c 2016/09/12 20:31:34 2.29 @@ -1,5 +1,5 @@ #ifndef lint -static const char RCSid[] = "$Id: rcontrib.c,v 2.28 2016/04/27 21:11:32 greg Exp $"; +static const char RCSid[] = "$Id: rcontrib.c,v 2.29 2016/09/12 20:31:34 greg Exp $"; #endif /* * Accumulate ray contributions for a set of materials @@ -135,11 +135,15 @@ addmodifier(char *modn, char *outf, char *prms, char * mp->modname = modn; /* XXX assumes static string */ mp->params = prms; /* XXX assumes static string */ mp->binv = ebinv; + mp->bin0 = 0; mp->nbins = bincnt; memset(mp->cbin, 0, sizeof(DCOLOR)*bincnt); - /* allocate output streams */ - for (i = bincnt; i-- > 0; ) - getostream(mp->outspec, mp->modname, i, 1); + /* figure out starting bin */ + while (!getostream(mp->outspec, mp->modname, mp->bin0, 1)) + mp->bin0++; + /* allocate other output streams */ + for (i = 0; ++i < mp->nbins; ) + getostream(mp->outspec, mp->modname, mp->bin0+i, 1); lep->data = (char *)mp; return(mp); }