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

Comparing ray/src/gen/gensky.c (file contents):
Revision 2.4 by greg, Fri Mar 20 12:23:38 1992 UTC vs.
Revision 2.7 by greg, Fri Oct 2 16:11:53 1992 UTC

# Line 36 | Line 36 | extern double  s_longitude;
36   extern double  s_meridian;
37                                          /* required values */
38   int  month, day;                                /* date */
39 < double  hour;                                   /* standard time */
39 > double  hour;                                   /* time */
40 > int  tsolar;                                    /* 0=standard, 1=solar */
41   double  altitude, azimuth;                      /* or solar angles */
42                                          /* default values */
43   int  cloudy = 0;                                /* 1=standard, 2=uniform */
# Line 58 | Line 59 | main(argc, argv)
59   int  argc;
60   char  *argv[];
61   {
61        extern double  fabs();
62          int  i;
63  
64          progname = argv[0];
# Line 74 | Line 74 | char  *argv[];
74                  month = 0;
75          } else {
76                  month = atoi(argv[1]);
77 +                if (month < 1 || month > 12)
78 +                        userror("bad month");
79                  day = atoi(argv[2]);
80 +                if (day < 1 || day > 31)
81 +                        userror("bad day");
82                  hour = atof(argv[3]);
83 +                if (hour < 0 || hour >= 24)
84 +                        userror("bad hour");
85 +                tsolar = argv[3][0] == '+';
86          }
87          for (i = 4; i < argc; i++)
88                  if (argv[i][0] == '-' || argv[i][0] == '+')
# Line 134 | Line 141 | computesky()                   /* compute sky parameters */
141  
142                  jd = jdate(month, day);         /* Julian date */
143                  sd = sdec(jd);                  /* solar declination */
144 <                st = hour + stadj(jd);          /* solar time */
144 >                if (tsolar)                     /* solar time */
145 >                        st = hour;
146 >                else
147 >                        st = hour + stadj(jd);
148                  altitude = salt(sd, st);
149                  azimuth = sazi(sd, st);
150          }
# Line 146 | Line 156 | computesky()                   /* compute sky parameters */
156          if (zenithbr <= 0.0)
157                  if (cloudy) {
158                          zenithbr = 8.6*sundir[2] + .123;
159 <                        zenithbr *= 1000.0/SKYEFFICACY;
159 >                        zenithbr *= 1000.0/WHTEFFICACY;
160                  } else {
161                          zenithbr = (1.376*turbidity-1.81)*tan(altitude)+0.38;
162                          zenithbr *= 1000.0/SKYEFFICACY;
# Line 163 | Line 173 | computesky()                   /* compute sky parameters */
173          } else {
174                  F2 = 0.274*(0.91 + 10.0*exp(-3.0*(PI/2.0-altitude)) +
175                                  0.45*sundir[2]*sundir[2]);
176 <                groundbr = zenithbr*normsc(PI/2.0-altitude)/F2/PI;
176 >                groundbr = zenithbr*normsc(altitude)/F2/PI;
177                  printf("# Ground ambient level: %f\n", groundbr);
178                  if (sundir[2] > 0.0) {
179                          if (sundir[2] > .16)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines