ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/cv/bsdf2ttree.c
(Generate patch)

Comparing ray/src/cv/bsdf2ttree.c (file contents):
Revision 2.57 by greg, Mon Mar 29 17:40:21 2021 UTC vs.
Revision 2.63 by greg, Tue Jun 3 21:31:51 2025 UTC

# Line 17 | Line 17 | static const char RCSid[] = "$Id$";
17   #include "rtio.h"
18   #include "calcomp.h"
19   #include "bsdfrep.h"
20                                /* global argv[0] */
21 char                    *progname;
20                                  /* reciprocity averaging option */
21 < static const char       *recip = " -a";
21 > static const char       *recip = "";
22                                  /* percentage to cull (<0 to turn off) */
23   static double           pctcull = 90.;
24                                  /* sampling order */
# Line 28 | Line 26 | static int             samp_order = 6;
26                                  /* super-sampling threshold */
27   static double           ssamp_thresh = 0.35;
28                                  /* number of super-samples */
29 < static int              nssamp = 256;
29 > static int              nssamp = 64;
30                                  /* limit on number of RBF lobes */
31   static int              lobe_lim = 15000;
32                                  /* progress bar length */
# Line 135 | Line 133 | eval_isotropic(char *funame)
133          int             assignD = 0;
134          char            cmd[128];
135          int             ix, ox, oy;
136 <        double          iovec[6];
136 >        RREAL           iovec[6];
137          float           bsdf, uv[2];
138  
139          if (pctcull >= 0) {
# Line 208 | Line 206 | eval_isotropic(char *funame)
206                          rbf = advect_rbf(iovec, lobe_lim);
207                                                  /* presample first row */
208                  for (oy = 0; oy < sqres; oy++) {
209 <                    SDsquare2disk(iovec+3, .5*sqfact, (oy+.5)*sqfact);
209 >                    square2disk(iovec+3, .5*sqfact, (oy+.5)*sqfact);
210                      iovec[5] = output_orient *
211                                  sqrt(1. - iovec[3]*iovec[3] - iovec[4]*iovec[4]);
212                      if (funame == NULL) {
# Line 230 | Line 228 | eval_isotropic(char *funame)
228                       */
229                      for (oy = 0; oy < sqres; oy++) {
230                          if (ox < sqres-1) {     /* keeping one row ahead... */
231 <                            SDsquare2disk(iovec+3, (ox+1.5)*sqfact, (oy+.5)*sqfact);
231 >                            square2disk(iovec+3, (ox+1.5)*sqfact, (oy+.5)*sqfact);
232                              iovec[5] = output_orient *
233                                  sqrt(1. - iovec[3]*iovec[3] - iovec[4]*iovec[4]);
234                          }
# Line 250 | Line 248 | eval_isotropic(char *funame)
248                                  for (ssi = nssamp; ssi--; ) {
249                                      SDmultiSamp(ssa, 2, (ssi+frandom()) /
250                                                          (double)nssamp);
251 <                                    SDsquare2disk(iovec+3, (ox+ssa[0])*sqfact,
251 >                                    square2disk(iovec+3, (ox+ssa[0])*sqfact,
252                                                          (oy+ssa[1])*sqfact);
253                                      iovec[5] = output_orient *
254                                          sqrt(1. - iovec[3]*iovec[3] - iovec[4]*iovec[4]);
# Line 305 | Line 303 | eval_isotropic(char *funame)
303                                          ssvec[2] = 1. - ssvec[0]*ssvec[0];
304                                      }
305                                      ssvec[2] = input_orient * sqrt(ssvec[2]);
306 <                                    SDsquare2disk(ssvec+3, (ox+ssa[2])*sqfact,
306 >                                    square2disk(ssvec+3, (ox+ssa[2])*sqfact,
307                                                  (oy+ssa[3])*sqfact);
308                                      ssvec[5] = output_orient *
309                                                  sqrt(1. - ssvec[3]*ssvec[3] -
# Line 399 | Line 397 | eval_anisotropic(char *funame)
397          int             assignD = 0;
398          char            cmd[128];
399          int             ix, iy, ox, oy;
400 <        double          iovec[6];
400 >        RREAL           iovec[6];
401          float           bsdf, uv[2];
402  
403          if (pctcull >= 0) {
# Line 469 | Line 467 | eval_anisotropic(char *funame)
467          for (ix = 0; ix < sqres; ix++)
468              for (iy = 0; iy < sqres; iy++) {
469                  RBFNODE *rbf = NULL;            /* Klems reversal */
470 <                SDsquare2disk(iovec, 1.-(ix+.5)*sqfact, 1.-(iy+.5)*sqfact);
470 >                square2disk(iovec, 1.-(ix+.5)*sqfact, 1.-(iy+.5)*sqfact);
471                  iovec[2] = input_orient *
472                                  sqrt(1. - iovec[0]*iovec[0] - iovec[1]*iovec[1]);
473                  if (funame == NULL)
474                          rbf = advect_rbf(iovec, lobe_lim);
475                                                  /* presample first row */
476                  for (oy = 0; oy < sqres; oy++) {
477 <                    SDsquare2disk(iovec+3, .5*sqfact, (oy+.5)*sqfact);
477 >                    square2disk(iovec+3, .5*sqfact, (oy+.5)*sqfact);
478                      iovec[5] = output_orient *
479                                  sqrt(1. - iovec[3]*iovec[3] - iovec[4]*iovec[4]);
480                      if (funame == NULL) {
# Line 498 | Line 496 | eval_anisotropic(char *funame)
496                       */
497                      for (oy = 0; oy < sqres; oy++) {
498                          if (ox < sqres-1) {     /* keeping one row ahead... */
499 <                            SDsquare2disk(iovec+3, (ox+1.5)*sqfact, (oy+.5)*sqfact);
499 >                            square2disk(iovec+3, (ox+1.5)*sqfact, (oy+.5)*sqfact);
500                              iovec[5] = output_orient *
501                                  sqrt(1. - iovec[3]*iovec[3] - iovec[4]*iovec[4]);
502                          }
# Line 518 | Line 516 | eval_anisotropic(char *funame)
516                                  for (ssi = nssamp; ssi--; ) {
517                                      SDmultiSamp(ssa, 2, (ssi+frandom()) /
518                                                          (double)nssamp);
519 <                                    SDsquare2disk(iovec+3, (ox+ssa[0])*sqfact,
519 >                                    square2disk(iovec+3, (ox+ssa[0])*sqfact,
520                                                          (oy+ssa[1])*sqfact);
521                                      iovec[5] = output_orient *
522                                          sqrt(1. - iovec[3]*iovec[3] - iovec[4]*iovec[4]);
# Line 564 | Line 562 | eval_anisotropic(char *funame)
562                                  for (ssi = nssamp; ssi--; ) {
563                                      SDmultiSamp(ssa, 4, (ssi+frandom()) /
564                                                          (double)nssamp);
565 <                                    SDsquare2disk(ssvec, 1.-(ix+ssa[0])*sqfact,
565 >                                    square2disk(ssvec, 1.-(ix+ssa[0])*sqfact,
566                                                  1.-(iy+ssa[1])*sqfact);
567                                      ssvec[2] = input_orient *
568                                                  sqrt(1. - ssvec[0]*ssvec[0] -
569                                                          ssvec[1]*ssvec[1]);
570 <                                    SDsquare2disk(ssvec+3, (ox+ssa[2])*sqfact,
570 >                                    square2disk(ssvec+3, (ox+ssa[2])*sqfact,
571                                                  (oy+ssa[3])*sqfact);
572                                      ssvec[5] = output_orient *
573                                                  sqrt(1. - ssvec[3]*ssvec[3] -
# Line 746 | Line 744 | main(int argc, char *argv[])
744          int                     nsirs = 0;
745          char                    buf[1024];
746          int                     i;
747 <
748 <        progname = argv[0];
747 >                                                /* set global progname */
748 >        fixargv0(argv[0]);
749          esupport |= E_VARIABLE|E_FUNCTION|E_RCONST;
750          esupport &= ~(E_INCHAN|E_OUTCHAN);
751          scompile("PI:3.14159265358979323846", NULL, 0);
# Line 765 | Line 763 | main(int argc, char *argv[])
763                                  single_plane_incident = 0;
764                          break;
765                  case 'f':
766 <                        if (!argv[i][2]) {
766 >                        if ((argv[i][0] == '-') & !argv[i][2]) {
767                                  if (strchr(argv[++i], '=') != NULL) {
768                                          add_wbsdf("-f", 1);
769                                          add_wbsdf(argv[i], 1);
# Line 878 | Line 876 | main(int argc, char *argv[])
876                          fprintf(stderr, "\tor 3 arguments using Dx,Dy,Dz: bsdf(ix,iy,iz)\n");
877                          goto userr;
878                  }
879 +                doptimize(1);                   /* optimize definitions */
880                  ++eclock;
881                  add_wbsdf("-a", 1);
882                  add_wbsdf(tfmt[single_plane_incident], 1);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines