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

Comparing ray/src/rt/rcmain.c (file contents):
Revision 2.30 by greg, Fri Apr 7 15:00:11 2023 UTC vs.
Revision 2.40 by greg, Tue Apr 22 17:12:25 2025 UTC

# Line 55 | Line 55 | char   RCCONTEXT[] = "RC.";            /* our special evaluation c
55  
56   #if defined(_WIN32) || defined(_WIN64)
57   #define RCONTRIB_FEATURES       "Accumulation\nSummation\nRecovery\n" \
58 <                                "ValueContribution\nImmediateIrradiance\n" \
58 >                                "ImmediateIrradiance\n" \
59                                  "ProgressReporting\nDistanceLimiting\n" \
60 <                                "Outputs=V,W\n"
60 >                                "InputFormats=a,f,d\nOutputFormats=a,f,d,c\n" \
61 >                                "Outputs=V,W\n" \
62 >                                "OutputCS=RGB,spec\n"
63   #else
64   #define RCONTRIB_FEATURES       "Multiprocessing\n" \
65                                  "Accumulation\nSummation\nRecovery\n" \
66 <                                "ValueContribution\nImmediateIrradiance\n" \
66 >                                "ImmediateIrradiance\n" \
67                                  "ProgressReporting\nDistanceLimiting\n" \
68 <                                "Outputs=V,W\n"
68 >                                "InputFormats=a,f,d\nOutputFormats=a,f,d,c\n" \
69 >                                "Outputs=V,W\n" \
70 >                                "OutputCS=RGB,spec\n"
71   #endif
72  
73   static void
# Line 80 | Line 84 | printdefaults(void)                    /* print default values to stdou
84          printf("-y %-9d\t\t\t# y resolution\n", yres);
85          printf(lim_dist ? "-ld+\t\t\t\t# limit distance on\n" :
86                          "-ld-\t\t\t\t# limit distance off\n");
87 <        printf("-h%c\t\t\t\t# %s header\n", header ? '+' : '-',
88 <                        header ? "output" : "no");
87 >        printf(header ? "-h+\t\t\t\t# output header\n" :
88 >                        "-h-\t\t\t\t# no header\n");
89          printf("-f%c%c\t\t\t\t# format input/output = %s/%s\n",
90                          inpfmt, outfmt, formstr(inpfmt), formstr(outfmt));
91 +        if (report_intvl > 0)
92 +                printf("-t %-9d\t\t\t#  time between reports\n", report_intvl);
93          printf(erract[WARNING].pf != NULL ?
94                          "-w+\t\t\t\t# warning messages on\n" :
95                          "-w-\t\t\t\t# warning messages off\n");
# Line 204 | Line 210 | main(int argc, char *argv[])
210                  if (_setmaxstdio(i) == i)
211                          break;
212   #endif
213 <                                        /* initialize calcomp routines early */
208 <        initfunc();
213 >        initfunc();                     /* initialize calcomp routines */
214          calcontext(RCCONTEXT);
215                                          /* option city */
216          for (i = 1; i < argc; i++) {
# Line 257 | Line 262 | main(int argc, char *argv[])
262                          if (rval) erract[WARNING].pf = wputs;
263                          else erract[WARNING].pf = NULL;
264                          break;
260                case 'e':                       /* expression */
261                        check(2,"s");
262                        scompile(argv[++i], NULL, 0);
263                        break;
265                  case 'l':                       /* limit distance */
266                          if (argv[i][2] != 'd')
267                                  goto badopt;
# Line 269 | Line 270 | main(int argc, char *argv[])
270                  case 'I':                       /* immed. irradiance */
271                          check_bool(2,imm_irrad);
272                          break;
273 <                case 'f':                       /* file or force or format */
273 <                        if (!argv[i][2]) {
274 <                                check(2,"s");
275 <                                loadfunc(argv[++i]);
276 <                                break;
277 <                        }
273 >                case 'f':                       /* force or format */
274                          if (argv[i][2] == 'o') {
275                                  check_bool(3,force_open);
276                                  break;
# Line 285 | Line 281 | main(int argc, char *argv[])
281                          check(2,"s");
282                          curout = argv[++i];
283                          break;
288                case 'c':                       /* input rays per output */
289                        check(2,"i");
290                        accumulate = atoi(argv[++i]);
291                        break;
284                  case 'r':                       /* recover output */
285                          check_bool(2,recover);
286                          break;
# Line 299 | Line 291 | main(int argc, char *argv[])
291                          check(2,"s");
292                          set_eparams(prms = argv[++i]);
293                          break;
294 +                case 'c':                       /* sample count */
295 +                        check(2,"i");
296 +                        accumulate = atoi(argv[++i]);
297 +                        break;
298                  case 'b':                       /* bin expression/count */
299                          if (argv[i][2] == 'n') {
300                                  check(3,"s");
# Line 328 | Line 324 | main(int argc, char *argv[])
324                  error(USER, "missing required modifier argument");
325                                          /* override some option settings */
326          override_options();
327 +                                        /* set/check spectral sampling */
328 +        if (setspectrsamp(CNDX, WLPART) < 0)
329 +                error(USER, "unsupported spectral sampling");
330                                          /* initialize object types */
331          initotypes();
332                                          /* initialize urand */
# Line 382 | Line 381 | main(int argc, char *argv[])
381          
382          rcontrib();                     /* trace ray contributions (loop) */
383  
385        ambsync();                      /* flush ambient file */
386
384          /* PMAP: free photon maps */
385          ray_done_pmap();    
386          
# Line 408 | Line 405 | wputs(                         /* warning output function */
405   )
406   {
407          int  lasterrno = errno;
408 +        if (erract[WARNING].pf == NULL)
409 +                return;         /* called by calcomp or someone */
410          eputs(s);
411          errno = lasterrno;
412   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines