ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/doc/notes/ReleaseNotes
Revision: 1.420
Committed: Fri Aug 12 23:55:00 2022 UTC (21 months ago) by greg
Branch: MAIN
Changes since 1.419: +7 -0 lines
Log Message:
fix(iso2klems): used solid angle, when projected SA needed, and integral factor

File Contents

# User Rev Content
1 greg 1.1 =========================
2     Version 1.2 (Released 3/9/90)
3    
4     Added a -p option to rpict and pfilt to set the pixel aspect ratio for
5     output. Instead of giving the absolute x and y resolutions, the user
6     now gives rpict and pfilt the maximum desired resolution for x and y
7     and the pixel aspect ratio is used along with the given view to
8     calculate appropriate values within this boundary. This makes for
9     much more natural view specifications. For example, for a 512x400
10     device with a pixel aspect ratio of 1.0, the pfilt command:
11    
12     pfilt -x 512 -y 400 -p 1
13    
14     will always produce the appropriate output, regardless of the aspect
15     ratio of the input picture. If necessary, the x or y output resolution
16     will be reduced to accommodate the device's resolution. A square image
17     would occupy a region of 400x400 pixels.
18    
19     View shift and lift options were added to the list of standard view
20     parameters, for specifying views for panoramas and holograms.
21    
22     Rview no longer takes options for x and y resolution, but instead
23     gets them from the device driver along with the pixel ratio. This
24     makes it much easier to change the view aspect ratio (with the vh
25     and vv parameters).
26    
27     A -z option was added to rpict to write out the distances for each
28     pixel in an image. This may be useful for z-buffer operations, and
29     is used by the new program pinterp, described below.
30    
31     A program called pinterp was added to the burgeoning list of
32     picture filters and converters. This program is designed primarily
33     to interpolate animated frames for walk-throughs of static scenes,
34     but it has a number of other useful functions besides. It takes as
35     its input one or more rendered pictures (with their corresponding z
36     value files) and desired viewpoint (hopefully not too far afield from
37     the given images). Pinterp then takes the input frames and moves the
38     pixels to their new computed location. Filling operations make sure
39     that the final image does not have large unpainted regions.
40    
41     Added smoothing option to gensurf, using bilinear Phong surface normal
42     interpolation. Not perfect, but it's better than nothing and permits
43     the use of fewer polygons to represent smoothly curved surfaces.
44    
45     =========================
46     Version 1.3 (Released 10/22/90)
47    
48     Added conversion utility for IES (Illuminating Engineering Society) standard
49     format luminaire data. The translator, called ies2rad, takes any number
50     of luminaire data files and creates the necessary Radiance geometric
51     descriptions and data files and puts them in the specified library location.
52     A new data format was added to accommodate irregularly-spaced data points.
53    
54     Added rview driver for NeWS for Sun and Silicon Graphics workstations.
55     This work was done by Isaac Kwo.
56    
57     Fixed oconv for scenes with many overlapping instances (runs faster now).
58    
59     Added consitency checks intended to detect stale octrees without restricting
60     changes to surface modifiers. (But you still can't change total number of
61     objects). Stale octrees caused some of the strangest behavior...
62    
63     Finally broke down and wrote my own malloc(3) routines. There is a
64     CalTech module floating around Berkeley that caused a lot of trouble
65     for bmalloc(), resulting in about twice the needed memory use.
66    
67     Added translator for Architrion. Arch2rad uses mapping rules to assign
68     materials to surfaces from input file. This is a general method (dreamed
69     up by Charles Ehrlich) that allows users to assign materials based on
70     whatever information is available from the CAD file. See the accompanying
71     description file on translators in the ray/doc/notes directory.
72    
73     Added fisheye view types to rpict and rview, useful for looking at
74     entire scenes and for LEEP virtual reality wide field stereo viewer.
75    
76     Wrote xshowtrace, a fun program for watching rays as they are being
77     traced on an X11 display.
78    
79     Write ra_pr24 for converting between 24-bit Sun rasterfiles and
80     Radiance pictures. Perhaps this should be incorporated in ra_pr, as
81     ra_t8 and ra_t16 should be one program, but the algorithms and memory
82     requirements are totally different for colormapped images.
83    
84     Added routines for performing 24-bit gamma correction in integer domain,
85     making programs like ra_pr24 and ra_t16 run faster.
86    
87     =========================
88     Version 1.4 (Released early 1991?)
89    
90     Fixed bug in IES translator that resulted in the incorrect
91     interpretation of type B photometric data. (1.3.1)
92    
93     Added types for using BRDF data: plasfunc, metfunc, plasdata and metdata.
94    
95     Added interpretation of source color to ies2rad and color corrective
96     filtering to pfilt. Reference file used by both is "lamp.tab" in
97     library directory.
98    
99     Added picture flipping program, pflip, and pattern preprocessing script,
100     normpat.csh, to the px directory.
101    
102     Fixed bug in ra_pr24 that caused the reversal of red and blue values.
103     New version accepts both RT_STANDARD and RT_FORMAT_RGB files but
104     produces only RT_STANDARD rasterfiles as output.
105    
106     Added -m option to xform to change modifiers for surfaces.
107    
108     Wrote replmarks program to replace markers in a Radiance scene file
109     for light sources or other objects.
110    
111     Added global compilation script, makeall.
112    
113     Fixed calculation of luminance in display programs and gensky to use
114     white light assumption.
115    
116     Added options and features to pcomb.
117    
118     Added FORMAT= line to all Radiance file headers for improved error
119     checking and clarity.
120    
121     Added icon bitmaps for rview and x11image under X11 and fixed a bug
122     that caused x11image to ignore keyboard input.
123    
124     ****** COMPATIBILITY CHANGE ********
125     Added constant definitions to cal files using ':' instead of '='.
126     This makes for faster calculations since many more constant
127     expressions can be reduced at "compile" time.
128    
129     Created glare calculation programs in util directory. Findglare locates
130     glare sources, xglaresrc circles sources on a displayed image, and
131     glarendx computes various glare indices.
132    
133     =========================
134     Version 2.0 (Released 11/26/91)
135    
136     Added -i option to renderers for computing irradiance rather than
137     radiance. Eliminated redundant -oI option from rtrace and added
138     -I option to replace old -oi. This hack ignores glass and similar
139     surfaces during the calculation.
140    
141     Changed icon for x11image (renamed ximage) to miniature bitmap of
142     picture.
143    
144     Fixed bug in xshowtrace that prevented it from working with twm.
145    
146     Added memory recovery feature to rview so that when it refines
147     itself out of memory it doesn't quit but instead gives the user
148     a command line saying "out of memory:", which allows the output to
149     be written and so forth before quitting or restarting the image.
150    
151     Added -g (gamma correction) option to pvalue.
152    
153     Added the more general BRTDfunc for procedural definition of bidirectional
154     reflectance-transmittance distribution functions. Also added transfunc
155     and transdata types.
156    
157     Changed trans types to modify the color of the transmitted specular
158     component.
159    
160     Fixed a bug in ra_t16 introduced in the last change which caused
161     problems for the (default) 16-bit output mode.
162    
163     Improved Monte Carlo sampling for penumbras (-dj) and ambient
164     super-samples (-as) using stratified random number sequence introduced
165     by Christophe Schlick at '91 Eurographics workshop on rendering.
166    
167     Wrote falsecolor program to transform images to false color with
168     value labels.
169    
170     Modified pcomb to allow different output sizes and access to local
171     pixel neighborhood for specialty filtering applications.
172    
173     Made cone and sphere routines more forgiving of negative radii,
174     switching between inverted types as necessary and giving warning
175     messages instead of bombing. Cones with equal radii are now
176     silently converted into cylinders. Hopefully, these changes will
177     make writing Radiance scene file translators a little bit easier.
178     Unfortunately, we still bomb for zero-sized cones and spheres.
179    
180     Wrote a program called getbbox that just computes the bounding box
181     for a set of Radiance scene files. It is basically a modified version
182     of oconv that doesn't store objects in memory and doesn't care about
183     undefined modifiers.
184    
185     Added -a and -l options to pcompos and made both pcompos and pcomb
186     read from commands as well as files.
187    
188     Substantially improved the accuracy and appearance of the interreflection
189     calculation by computing gradients at the same time as primary values and
190     then using a first order interpolation scheme. This affects the information
191     stored in ambient files, so old files will have to be thrown away.
192    
193     Added secondary light sources from planar mirror, prismatic and
194     holographic surfaces. This created the new options -dr (direct relays)
195     and -dp (direct presample density) to the renderers. The document
196     secsrc.note describes this feature in greater detail.
197    
198     Put many of the routines into a common library.
199    
200     Wrote a replacement for makedist, called mkillum, which generates
201     light distribtuions and illum descriptions for windows, skylights,
202     etc. in a much more natural and automatic fashion.
203    
204     Fixed long-standing bug in text routines which caused slanted text
205     to slant the wrong way!
206    
207     Added -e option to ra_bn, ra_pr, ra_pr24, ra_t8 and ra_t16 programs
208     for faster and more convenient image conversion w/o using pfilt.
209    
210     ****** COMPATIBILITY CHANGE ********
211     Finally added contexts to calcomp routines so identical names in
212     different function files no longer conflict. Loading of function
213     files also works automatically without those nasty "key" variables.
214     New context marks (backquote characters) appear in some local variables
215     defined in some of the cal files. This is inconsistent with older
216     versions, and must be changed back to and underscore or some other legal
217     character if these files are used by 1.4 and earlier.
218    
219     Wrote ra_tiff program, using Sam Leffler's libtiff package to read
220     and write 24-bit TIFF images.
221    
222     Wrote ra_ppm program to convert to and from Poskanzer Pixmaps.
223    
224     ****** COMPATIBILITY CHANGE ********
225     Changed run-length encoding of Radiance pictures to gain better
226     compression. Routines can still read old format, but new ra_rgbe
227     program must be used to write convert images to a more generic format
228     that can be read by release 1.4 and earlier.
229    
230     Defined U and V parameters in rayinit.cal for more convenient (and
231     sloppy) use of 2-dimensional textures and patterns on planar surfaces.
232    
233     Beefed up lampcolor program to compute spectral radiance for diffuse
234     emitters. This was a previously a pain in the butt and a serious
235     source of error for scenes not modeled using IES data files.
236    
237     Added version reporting to rpict, rtrace and rview. Use standalone
238     -version option.
239    
240     Changed to quincunx initial sampling pattern in rpict. This should
241     reduce artifacts from adaptive image sampling at no added cost.
242    
243     Added -rgb option to ra_pr24 to produce RT_FORMAT_RGB files.
244    
245     Added -ds option to renderers to make source sampling more accurate
246     for large area sources. It is no longer necessary or recommended
247     to break large sources (such as windows) into smaller pieces with
248     gensurf unless their output distribution changes over their surface.
249     Also, cylinders can now be used as light sources, provided they are not
250     too short compared to their radius (causing them to be frequently missed).
251    
252     Added -I option to xform to invert surfaces.
253    
254     Added SMLFLT and BIGMEM defines to better control the sizes of data
255     structures during compilation. Made their setting relatively
256     straightforward in makeall and created a separate rmake program to
257     hold the options generated by makeall.
258    
259     Made the programs more forgiving of machine differences on octrees.
260    
261     ****** COMPATIBILITY CHANGE ********
262     Fixed incorrect conversion factor between radiance and luminance.
263     The correct luminous efficacy value is now defined in color.h as
264     WHTEFFICACY. It was 470 lumens/watt previously, now it has been
265     corrected to 179 lumens/watt. This affects the absolute values
266     in the output of programs like gensky and ies2rad. Thus, these
267     programs should be rerun to generate corrected files for this
268     version of Radiance. Also, the new versions of display programs
269     like ximage will give different values with the 'l' command on
270     an image generated with 1.4 and previous releases. The following
271     alias may be used to fix the radiance values in a picture generated
272     using previous versions of gensky and ies2rad:
273    
274     alias pfixabs '( echo EXPOSURE=.381 ; cat \!:1 ) > \!:1.$$ ; mv \!:1.$$ \!:1'
275    
276     Improved accuracy of glass material type and added option for
277     user-supplied index of refraction.
278    
279     Added sgi to rt/Makefile and px/Makefile SPECIAL category for compiling
280     Isaac Kwo's NeWS driver for rview and the glimage program by Jim Winget.
281     Also fixed various compile problems for the SGI.
282    
283     Improved handling of alternate scanline orientations. The programs
284     pflip and protate (used to be prot) now affect the scanline ordering
285     of the file without messing up the view parameters for programs like
286     pinterp and findglare.
287    
288     ==========================
289     Version 2.1 (Released 5/20/92)
290    
291     ****** COMPATIBILITY CHANGE ********
292     Changed function specifications to allow the use of expressions as
293     well as variables in scene files. Use of this feature may result
294     in some loss of backwards compatibility as older software does not
295     support it.
296    
297     Added makeall option for NeXT machine and changed code to suit.
298    
299     ****** COMPATIBILITY CHANGE ********
300     Added off-specular sampling and anisotropic materials plastic2,
301     metal2 and trans2. The old options -sp, -sj, -st and -p have
302     been renamed to -ps, -pj, -pt and -pa, respectively. New options
303     -sj and -st have been introduced.
304    
305     Improved ray intersection calculations using -DSMLFLT option by
306     increasing epsilon used in tests. This eliminates most of the
307     errors that occured when this compile option was used in version 2.0.
308    
309     Added capability to gensurf to read height or point data from a
310     file. This makes it more convenient to make (optionally smoothed)
311     landscapes from recorded measurements and the like.
312    
313     Corrected irradiance gradient calculation. New formula predicts
314     gradient better and thus reduces artifacts in indirect calculation.
315    
316     Modified replmarks to accept multiple markers.
317    
318     Added -aI and -aE options to read ambient include/exclude materials
319     from a file.
320    
321     Reduced effect of light leaks during interreflection calculation.
322    
323     Added -ang option to gensky for giving solar angles explicitly.
324    
325     Added ability of "view" command within rview to accept view options.
326    
327     Fixed a long-standing bug in gensky that caused it to report
328     inaccurate values for the ground ambient level. Since the dayfact
329     script uses this value in calculating its results, version 2.0 will
330     be in error (by as much as 30 or 40%).
331    
332     Fixed a bug in the reflectance normalization for isotropic and
333     anisotropic Gaussian highlights that caused too much light to
334     be reflected near grazing angles. Much thanks to the folks at
335     Ohio State University (Steve Spencer and Kevin Simon) who
336     pointed this out to me!
337    
338     Fixed bug in xshowtrace introduced in 2.0. It absolutely didn't work
339     after my most recent changes to image.c. (Sorry about that!)
340    
341     Finally fixed shortcoming of view reading routines so they can get
342     the views from pictures created with absolute program paths
343     (eg. /usr/local/bin/rpict). This affects programs like
344     xshowtrace and glare, as well as the recover option of rpict.
345    
346     Fixed isotropic Gaussian distribution (highlights for types "metal"
347     and "plastic") to make them more accurate and bring them into line
348     with the new anisotropic Gaussian models ("metal2" and "plastic2").
349     This may affect the appearance of some hightlights.
350    
351     Added -H and -R options to pvalue to control resolution strings
352     and color ordering.
353    
354     Fixed byte ordering for 24-bit color displays in ximage.
355    
356     ==========================
357     Version 2.2 (No official release)
358    
359     Made more fixes in rview and ximage for different display hardware.
360     Philip Thompson and Peter Apian helped with suggestions and testing.
361    
362     Fixed bug in -e option of xform that kept it from fully expanding
363     some scene files.
364    
365     Added proportional text spacing (-s option for psign, new argument
366     for text primitives). Added antialiasing (3x3 super-sampling) to psign.
367    
368     Added code in display drivers to read environment variable called
369     "GAMMA" to set gamma correction for different monitors. See notes in
370     this directory on gamma_corr.
371    
372     Added CC defines to all the Rmakefiles so that other C compilers may be
373     used consistently.
374    
375     Added -x and -y options to psign to control output dimensions directly.
376    
377     Decreased value of FTINY with SMLFLT option once again in an attempt to
378     further reduce errors.
379    
380     Reinstated rtrace's capability to produce 32-bit_rle_rgbe directly.
381    
382     Added -S and -o options to rpict for more flexible production of
383     multiple images and slave operation. Rpict will also accept a recover
384     file name the same as the output file for more convenient recovery.
385    
386     Added ra_ps program to translate Radiance picture into PostScript file.
387    
388     ****** COMPATIBILITY CHANGE ********
389     Made ambient files machine-independent so they can be conveniently moved
390     and reused on any system. Also added coordinated reads and writes so
391     that multiple processes may use the same ambient file at the same time.
392     Along with the -S option of rpict, this should greatly facilitate parallel
393     rendering. The new ambient file format also contains a header that
394     can be read by getinfo. Lookamb now has a -h option.
395    
396     Created rpiece program for parallel rendering of a single image on
397     multiple processors and workstations.
398    
399     Eliminated star artifacts in mkillum distribution patterns by improving
400     data interpolation method. Improved ability of mkillum to correctly
401     sample non-axis-aligned polygons.
402    
403     Added -s and -o options to pcompos for slightly more convenient use
404     of the -a option. Also eliminated incompatibility between -a and -y
405     options.
406    
407     Fixed bug in spotlight sources that caused incorrect boundaries to be
408     cast by mirrors.
409    
410     Fixed rounding of scanlines in ra_pr24 to 16-bit boundaries.
411    
412     Added @file and $envar expansion capabilities to rtrace, rpict and
413     rview. This is primarily to overcome the 128-byte command limit of
414     MS-DOS.
415    
416     Added -r option to gensky for the direct specification of solar
417     brightness.
418    
419     Added -oN option to rtrace for reporting unperturbed surface normals,
420     and changed -on to report perturbed surface normals (used to be
421     unperturbed).
422    
423     Changed -di switch of rtrace, rpict and rview to -dv and changed
424     sense. Thus, instead of having a boolean variable called "source
425     invisibility" that is normally off, there is now a boolean variable
426     called "source visibility" that is normally on. More logical, and
427     also allows for the addition of -di and -de options for direct
428     include and exclude in the future.
429    
430     Fixed bug in image.c associated with -DSMLFLT that caused angular
431     fisheye views to repeat the center pixel in the middle of an image.
432    
433     Modified colordata and colorpict to take functions of a single variable
434     instead of always requiring functions of three variables (red, green, blue).
435    
436     Modified objview script to work in original object coordinates.
437    
438     Added -P and -PP options to rpict and rtrace for persistent and parallel
439     processing, respectively. The -P option is most useful with the -fr
440     option of pinterp, since rtrace doesn't have to be restarted for every
441     frame in a long animation sequence. The -PP option is most useful when
442     running rpiece on a multiprocessing platform, to get acceptable memory
443     sharing without the hassle of threaded code.
444    
445     Changed signal handling in rpict so CONT is now used to elicit
446     asynchronous progress reports. ALRM now causes rpict to die
447     unconditionally.
448    
449     Created executive program called "rad" to run oconv, rview, rpict and
450     pfilt automatically. This should greatly simplify use of Radiance and
451     reduce the problems associated with poorly chosen parameter values.
452    
453     Added slave driver to rview to make it easier to run from other
454     graphics applications. (Thanks to Chris Nicholas of Sun for the
455     suggestion.)
456    
457     Fixed error in ies2rad.c and source.cal that caused incorrect
458     interpretation of asymmetric Type C (A) fixture photometry. Note the
459     new definition of src_phi in source.cal. This change may affect
460     manually entered photometry.
461    
462     Added '@' command to ximage to adjust exposure based on Blackwell's
463     model of human contrast sensitivity.
464    
465     Added functions to pcomb to get the ray origin and direction from the
466     input picture view specifications.
467    
468     Removed Fresnel approximation to specular reflection from Radiance materials,
469     since the direct component was not being computed correctly. This
470     may have a slight affect on the appearance of surfaces, but it can't be
471     helped.
472    
473     ****** COMPATIBILITY CHANGE ********
474     Changed the definition of the BRTDfunc type so as to be more general and to
475     allow for different reflection properties depending on what side of the
476     surface the ray is incident. Any scene and function files using the
477     old definition of BRTDfunc must be updated. Implemented the approximation
478     used in Window 4 to reflection from coated glazings in lib/glazing.cal.
479    
480     Added -ti, -te, -tI and -tE options to rtrace for including or
481     excluding surfaces from those reported by the trace output specifier.
482    
483     Fixed long-standing bug in pfilt gaussian filter option, which caused
484     the image to be excessively defocused.
485    
486     Added -m option to pfilt for image sample smoothing. This helps get rid
487     of some of the "speckle" associated with specular sampling.
488    
489     Made -ovt* compatible with -I option of rtrace.
490    
491     Changed ximage to work with multiple pictures. It now opens one window
492     for each picture file.
493    
494     Fixed error reporting in rpict for most machines. (Many thanks to Peter
495     Apian-Bennewitz for his help and suggestions.)
496    
497     ****** COMPATIBILITY CHANGE ********
498     Added intermediate sky to gensky and changed its options slightly.
499     The new gensky uses a new version of skybright.cal, so any old
500     gensky output in files must be recomputed with the new gensky before
501     it will work. (A "skybright: undefined" error should clue you in.)
502    
503     ==========================
504     Version 2.3 (Released 11/16/93)
505    
506     No changes from the above, but the official release was designated 2.3
507     to avoid confusion with previous beta releases of 2.2.
508    
509     ==========================
510     Version 2.4 (Released 4/20/94)
511    
512     Philip Thompson of MIT added use of a radiance.gamma resource to ximage
513     and we added it to the x11 driver of rview as well. This is an alternative
514     to setting the GAMMA environment variable for X11 servers.
515    
516     Added MLIB variable to Rmakefile's for defining alternate math libraries.
517     I discovered that the default version of sqrt() under IRIX is a whole
518     lot slower than what's in the libfastm.a library, and not much better.
519     This can make a significant difference to the renderers, since sqrt()
520     is relied on quite a bit, and it's assumed to be fast.
521    
522     Added =SS option to pcompos to allow anchor points for image positions
523     other than the lower left corner.
524    
525     Wrote raddepend script for finding dependencies in scene files.
526    
527     Fixed a bug in mkillum that caused it to incorrectly sample ring sources.
528    
529     Finally allowed mixtures to work with materials, thanks to the encouragement
530     and advice of Peter Apian-Bennewitz.
531    
532     Wrote a triangular mesh converter, called tmesh2rad. I defined my own
533     format, since I wasn't too familiar with anyone else's format and I
534     wanted to support some additional possibilities (most notably patterns).
535    
536     Added initial "#?RADIANCE" line to headers to simplify Radiance file
537     identification by programs used to magic numbers.
538    
539     Created a translator for Wavefront .obj files, called obj2rad. It uses
540     the same type of mapping rules as arch2rad.
541    
542     =============================
543     Version 2.5 (Released 6/26/95)
544    
545     Wrote translators to and from the new MGF (Materials and Geometry
546     Format) specification.
547    
548     Changed color conversion routines to make light source colors (from
549     lamp.tab) consistent with uniform white light standard.
550    
551     Fixed a bug that caused very small local sources not to be sampled
552     at all!
553    
554     Added the ability for rview to read commands from its standard input
555     under X11.
556    
557     ****************** COMPATIBILITY CHANGE ***********************
558     Changed GAMMA environment variable to DISPLAY_GAMMA, to bring it in
559     line with the xli program, so users don't have to give two variables
560     for the same value!
561    
562     Added -t (touch) option to rad, to make it easier to deal with minor
563     changes to input files.
564    
565     Created graphical user interface to rad, called trad. Based on Tcl/Tk,
566     this should finally get people to start using this program!
567    
568     Added -vo and -va (view fore and view aft) clipping plane options to
569     Radiance view parameters.
570    
571     Added -bv option for (opaque) back face visibility control.
572    
573     Added -q, -a and -e options to pinterp, and made it faster. (These
574     should be big improvements.)
575    
576     Created tabfunc program for converting data tables to functional
577     language.
578    
579     Wrote mgf2meta program to convert MGF data to line drawing.
580    
581     Updated ies2rad program to interpret MGF geometry in IESNA-LM-63-1995
582     files.
583    
584     Added sorting of ambient values according to access times to improve
585     reference locality for better virtual memory performance.
586    
587     Added source solid angle argument to BRTD functions for averaging
588     values.
589    
590     Wrote genclock program to create an analog clock.
591    
592     Fixed a bug for bitmaps using hexbit4x1.fnt with brighttext, which
593     caused thin lines to appear.
594    
595     =============================
596     Version 3.0 (Released 6/19/96)
597    
598     Added comments to data and font files.
599    
600     Changed behavior of mirror to allow void alternate material.
601    
602     Added cylindrical view type for Quicktime VR authoring and other
603     interesting applications.
604    
605     Increased default rtrace parameters for more accurate calculations when
606     options are not specified.
607    
608     Added RAWFILE and ZFILE variables to rad for saving raw picture file and
609     Z (distance) information from rpict.
610    
611     Ported trad for newer (4.0) version of Tk (wish). Thanks to Bob Lipman
612     of NIST for helping me track down the changes.
613    
614     Added -B option to pinterp to blur multiple views into a single image,
615     useful for motion blur and depth of field simulation.
616    
617     Created pdfblur script and modified vwright to automate depth-of-field
618     simulation with pinterp.
619    
620     Added -c option for color PostScript output from ra_ps, and made both
621     this program and psmeta produce EPS-compatible files.
622    
623     Created macbethcal program for calibrating color image scanners and
624     film recorders or printers using the Macbeth ColorChecker chart.
625    
626     Created ra_xyze program for converting to and from new Radiance CIE XYZE
627     picture type and calibrating monitor colors. Modified Radiance picture
628     filters (pcompos, pflip, pcomb, pinterp, protate and pfilt) to handle
629     new picture type without complaint.
630    
631     Added automatic ambient value computation to improve accuracy of results
632     no matter what -av value is given. (Only works for -ab > 0.) This was
633     a fairly obvious optomization I should have thought of ages ago.
634     (Default is old behavior -- -aw option puts in new code.)
635    
636     Modified interreflection calculation to take textures (surface normal
637     perturbations) into account in indirect illumination. This should
638     improve the accuracy and appearance of textured surfaces in shadowed
639     regions.
640    
641     Added -T option to rpiece to limit execution time.
642    
643     Fixed bug in mixtext type introduced in last release -- caused improper
644     calculation of mixed modifiers.
645    
646     Added basic options and functionality for participating media. New material
647     type "mist" and rendering options -me, -ma, -mg and -ms. This should permit
648     the modeling of visible light beams, uniform smoke, fog, and some types
649     of clouds.
650    
651     Added -o option to ximage to control output of 't' command (and
652     middle mouse button). This adds the ability to produce pixel
653     position, radiance value and luminance. The default action is
654     the same as before.
655    
656     Created pmblur script to generate views for camera motion blur in
657     walk-through animations.
658    
659     Added "inpic" variable to picture.cal for determining when the edge
660     of a non-repeating image has been reached. Use with mixfunc primitive.
661    
662     Created ranimate program to control walk-through and dynamic animations
663     on multiple hosts.
664    
665     Fixed problem with antimatter type referring to final definition of
666     material names. Now, it uses the most recent ones.
667    
668     Added an MC macro for true Monte Carlo sampling rather than the default
669     Quasi Monte Carlo. To enable, add -DMC to the OPT= line in rmake.
670    
671     Fixed bug in pfilt -m option that caused floating point exceptions on
672     Alphas.
673    
674     Wrote xyzimage script for X11 display of XYZE and corrected RGBE pictures.
675     Takes the same options as ximage with an added -p option, and checks
676     the environment variable DISPLAY_PRIMARIES for setting of monitor
677     primaries. (See the ra_xyze manual page for further explanation.)
678    
679     Made colorpict's use much less memory by storing data in RGBE format
680     rather than floating point (takes 1/3 the space). This should help with
681     large image patterns.
682    
683     At the insistence of Henrik Wann Jensen, changed the specular sampling
684     code so that very rough specular surfaces will sample more truly,
685     eliminating some strange mirror appearances evident using the old
686     method.
687    
688     Added drawing of small and skinny light sources so rpict won't miss
689     these from inadequate image sampling. The method used may not work
690     perfectly for warped views (-vta, -vth and -vtc) having long,
691     cylindrical light sources. (Rob Shakespeare, take note!)
692    
693     Added corner rounding to genprism command (-r option).
694    
695     Changed mixtures so that mixing material with void is allowed, allowing
696     for opacity maps. Also altered general behavior so that surfaces
697     without materials in their modifier list are invisible, not only
698     surfaces with void modifiers.
699    
700     ****************** COMPATIBILITY CHANGE ***********************
701     The behavior of xform has been changed to make object library
702     organization and usage simpler.
703     1) The RAYPATH directories are searched for matching file names.
704     2) Filenames beginning with '.', '/' or '~' do not result in searches.
705     3) Xform performs a chdir to the found file's directory, obviating
706     the need for peculiar inclusion names in subdirectories.
707     4) The array option (-a) now works when xform reads from stdin.
708     5) The expand option (-e) is now the default -- -c gets
709     back old behavior.
710    
711     =============================
712     Version 3.1 (Released 7/24/97)
713    
714     Changed gensky so it will accept hour specifications as HH:MM, with
715     designations for standard North American and European time zones.
716    
717     Increased buffer size for in-line commands from 512 to 1024.
718    
719     Added T(n), S(n), WE and pa(n) functions and constants to pcomb.
720    
721     Created histo utility to compute 1-dimensional histograms from data files.
722    
723     Created pacuity, pveil and psquish scripts (later combined in "pcond"):
724    
725     o The pacuity program takes a Radiance picture and defocuses it
726     in places where the human eye loses resolution. Unless the
727     scene contains very low luminances (below .1 cd/m^2 or so),
728     this will not have an appreciable effect. The output can then
729     be adjusted according to the Ferwerda, Pattanaik and Shirley
730     tone mapping function using pcomb with the file
731     src/cal/cal/ferwerda.cal. (See the header comments therein.)
732    
733     o The pveil program finds sources of glare in an image and adds
734     a corresponding amount of background luminance surrounding each
735     glare source according to the adaptation response of the human
736     eye. This has the effect of reducing contrast around glare
737     sources.
738    
739     o The psquish program is probably the most useful of the three,
740     and must be applied after the other two if the others are
741     used. With the -a option, psquish uses the human visual
742     response to compress the dynamic range of an image to fit within
743     the limited dynamic range of a display (assumed to go from 1 to
744     100 cd/m^2), and also reduces color visibility in pictures with
745     low light levels (below 1 cd/m^2). Without the -a option,
746     psquish simply does the best it can to fit a picture's dynamic
747     range into what can be readily displayed, without regard to
748     human visual response. This has the effect of making problem
749     scenes viewable, such as indoor scenes with windows looking out
750     to bright exteriors.
751    
752     Created pcond program, which combines pacuity, pveil and psquish in a
753     more efficient, robust package. (See man page for details.)
754    
755     Renamed Perlin noise function partial functions, noise3a(), noise3b()
756     and noise3c() to noise3x(), noise3y() and noise3z(). Added backward
757     compatibility defines to rayinit.cal so nothing should be broken.
758    
759     Fixed double-counting bug in calculation of specular transmission of
760     light sources for trans type. This might have caused unrealistically
761     high estimates for illumination beneath trans surfaces with non-zero
762     roughnesses when the interreflection calculation was used (-ab 1).
763    
764     Added routines for reading and writing separate RGB files in pvalue.
765     Also added -pP (where P is one of 'R', 'G' or 'B' upper or lower case)
766     and -s option to skip specified number of bytes on header. Finally,
767     added a -n option for non-interleaved RGB input and output.
768    
769     Fixed obscure bug in rcalc that caused it to return "Bad call to
770     argument!" for certain combinations of function and output channel
771     definitions.
772    
773     Added "-e auto" and "-e human" options to ximage(1) and corresponding
774     'a' and 'h' commands to perform dynamic range compression similar to
775     pcond(1).
776    
777     ==============================
778     Version 3.4 (Released 1/28/02)
779    
780     Fixed bug in rpiece that caused it to incorrectly compute -vs and -vl
781     (view shift and lift) offsets. (Included in 3.1.1.)
782    
783     Fixed bug in xform handling mist's with > 5 real arguments.
784     (Included in 3.1.1.)
785    
786     Fixed bug in mist handling routines that caused some incorrect calculations
787     for distant sources. (Included in 3.1.1.)
788    
789     Added ability for lam utility to read from commands.
790    
791     Created vwrays command to compute ray origins and directions for specified
792     views or pictures.
793    
794     Changed rtrace behavior to send bogus record when ray direction is zero.
795     (Before, it only flushed values with no corresponding record.) This
796     change was needed to facilitate its use with the new vwrays program.
797    
798     Modified ies2rad so that it no longer produces glow sources for the sides
799     of objects, which caused unnatural dark bands near the ceilings of
800     direct/indirect installations. (Included in 3.1.4.)
801    
802     Fixed bug in rpiece that caused the -pa option to fail. (Included in 3.1.2.)
803    
804     Made ximage emphasize pixels in the selected region for the 'a' and 'h'
805     commands to adjust the exposure using histogram compression.
806     (Included in 3.1.4.)
807    
808     Fixed bug in trad which caused it to fail when there were tabs in the input.
809     (Included in 3.1.3.)
810    
811     Fixed bug in pcond that caused it to white-out borders of some fisheye views.
812     (Included in 3.1.3.)
813    
814     Added facility to ra_tiff to read and write new LogLuv high dynamic-range
815     image formats.
816    
817     Changed ambient value averaging in rendering programs (-aw option) to use
818     geometric mean rather than arithmetic mean, which tended to arrive at
819     too-high estimates and cause runaway calculations. (Included in 3.1.4.)
820    
821     Added -g, -p, -m and -d options for gamma, paper size, margins and dpi
822     to the ra_ps program. This allows for much better control over output
823     to PostScript printers.
824    
825     Fixed compiles for AIX -- select() incompatibility and macro conflicts.
826     (Included in 3.1.6.)
827    
828     Increased table sizes to allow up to 4 million primitives when -DBIGMEM
829     is defined, provided there's enough virtual memory to hold them!
830    
831     Fixed error in viewloc() for computing view locations for cylindrical views.
832    
833     Wrote rholo, rhcopy, rhpict, and rhoptimize programs for holodeck
834     creation, display, and manipulation. This is a much more powerful way
835     to view a model than rview, though it lacks many of the utility commands.
836    
837     Added the ability to separate concatanated animation frames using ra_rgbe.
838     This output facility of rpict was previously useless because nothing could
839     get anything past the first frame.
840    
841     Wrote compamb program to compute a good ambient value for a rad input file.
842     Using this script is preferable to setting the -aw option of rpict, which
843     seems to result in splotchy artifacts in many situations.
844    
845     Changed rad so it doesn't use the -aw option, which was causing some rather
846     annoying artifacts. (Added as patch to 3.1.8.)
847    
848     Modified ranimate to change directories before running transfer or archive
849     commands.
850    
851     Added -pm option to rpict to perform jittered motion blurring.
852    
853     Created phisto script and added -I option to pcond for computing
854     multiple, identical exposures.
855    
856     Fixed time zone specifications in gensky. (Added as patch to 3.1.9.)
857    
858     Fixed bug in mixture functions that caused erroneous modifier loops.
859     (Added as patch to 3.1.10.)
860    
861     Wrote glrad program for interactive display of Radiance scenes using OpenGL.
862     Modified objview program to use rad and glrad for rendering.
863    
864     Changed the way ray weights are computed for participating media (including
865     dielectrics) so they more accurately reflect a ray's contribution, avoiding
866     some artifacts with unsealed dielectric objects and the ambient calculation.
867    
868     Fixed problem with dielectric materials with textures where rays that should
869     have penetrated or reflected do the opposite.
870    
871     Created ra_hexbit program to generate bitmap files for use with hexbit4x1.fnt.
872    
873     ****************** COMPATIBILITY CHANGE ***********************
874     Altered mixtures to take the most recent modifier definition
875     rather than the last one in the entire description. Made the
876     same change for illum's and mirror's. Also, fixed a bug in
877     the antimatter type where it didn't always get the correct
878     material for shading.
879    
880     Wrote normtiff program to quickly tone-map and convert Radiance pictures
881     and SGILOG-encoded TIFF's to flat RGB TIFF output.
882    
883     Added -r option to protate for CCW rotations.
884    
885     Added ability to load values from read-only ambient file in rpict,
886     rtrace and rview. This may be useful when starting with the same
887     values on many processors, where NFS lock contention would slow
888     things down if they also wrote values back to the file.
889    
890     Wrote rhinfo program for printing out holodeck section information.
891    
892     Modified rad "scene" variable to allow in-line command specifications.
893    
894     Added added -s and -b options to ra_ppm for changing output scale and
895     forcing greyscale output.
896    
897     Now allow negative distances for the fore clipping plane in rpict.
898     This may be useful for rendering holographic stereograms.
899    
900     Added -f option to xform to read arguments from files. This can save
901     a lot of scene loading time by reducing multiple xform invocations.
902    
903     Added support for 15-bit TrueColor visuals in ximage.
904    
905     Added (undocumented) -P option to macbethcal for picking chart corners
906     directly using ximage.
907    
908     Added -r option to rholo for opening holodeck files read-only.
909    
910     Added correction factor for solid angle change in dielectrics as
911     noted in Eric Veach's thesis.
912    
913     Added von Kries white balance transform for color conversion using
914     CMCCAT2000 matrix.
915    
916     Added CAPDATE field to rendering headers to record render date.
917    
918     Added mixpict primitive for using pictures to generate mixtures.
919    
920     Fixed bug in Type B photometry angle calculation in source.cal discovered
921     by Erich Phillips.
922    
923     ==============================
924 greg 1.3 Version 3.5 (Released 3/21/03)
925 greg 1.1
926     Fixed bug in replmarks pointed out by Georg Mischler, which caused
927     garbage to be output under specific conditions (unscaled, unrotated
928     instances).
929    
930     Fixed bug in normtiff that caused occassional weird colors
931     on human tone-mapping of 32-bit LogLuv inputs (tmapluv.c).
932    
933     Fixed -o option of pcomb so it resets le(i) and color exposure functions
934     to unity.
935    
936     Fixed a bug in Type B photometry in ies2rad source.cal introduced
937     in last fix where spherical sources were getting symmetric
938     distributions front-to-back.
939    
940     Fixed another bug in ies2rad for 90-270 bilaterally symmetric fixtures, which
941     seems to have been there from the beginning. Thanks to Jack de Valpine
942     for pointing it out.
943    
944     Added NORANDOM symbol for tests with all random sampling turned off.
945    
946     Fixed a bug in expression evaluation code that was causing unneeded
947     evaluations of constants. This is a fix on an earlier fix of a more
948     serious bug prior to the 3.4 release, where the expression clock
949     was wrapping silently and allowing values to go stale.
950    
951     Fixed an even more serious bug in ies2rad for thin fixtures, where
952     it was using "flatcorr" without the proper correction for the
953     emitting area. Thanks again to Jack de Valpine for spotting this.
954    
955     --- All of the above was put into a 3.4.1 patch release 4/1/2002
956    
957     Added a facility to gensurf to make holes in the mesh using a
958     valid(s,t) function.
959    
960     Fixed bug in pcond that caused a bus error on images with large dark
961     regions when acuity switch was set.
962    
963     Fixed bug in pcomb that caused the S(n) function to return half
964     the solid angle value it should have. (Thanks to John Mardaljevic
965     for discovering this error.)
966    
967     Made rpict/rpiece/vwrays -vf option accept "-" as a synonym
968     for standard input.
969    
970     Fixed bug in persist functions (-P and -PP) with FreeBSD
971     (including MacOS X) having to do with altered system function
972     behaviors. Neither mknod() nor freopen() behave as they
973     used to.
974    
975     Improved accuracy of irradiance gradient calculation near
976     specular surfaces by using the effective ray distance
977     rather than the first surface intersection. (John
978     Mardaljevic had pointed out some errors he was seeing
979     with a particular atrium model.)
980    
981     Reinstated my favorite little Fresnel approximation for
982     perfectly smooth materials, so grazing angles show an
983     accurate gradient. Simultaneously revised the computation
984     of the direct component for proper energy balance.
985     (Thanks to Phillip Greenup for nagging John M. who nagged me.)
986    
987     Improved the accuracy and appearance of indirect irradiance
988     interpolation for smoothed surfaces. (Thanks to Bernhard
989     Spanlang for noticing the problem.)
990    
991     Fixed intolerance for carriage-returns in mkillum's input files,
992     which caused problems for files imported from DOS/Windows.
993    
994     Fixed apparent bug that I couldn't reproduce in rpict for very
995     narrow views, which sent it into an infinite loop under Linux.
996     (Rich Gillibrand of Bristol Univ. pointed it out.)
997    
998     Improved movement in rholo for low-detail holodecks on fast
999     graphics processors by inserting 50 ms pause during motion
1000     feedback.
1001    
1002     Finally fixed ages-old consistency error where ambient value
1003     lists were sorted incorrectly with the GNU-C compiler,
1004     causing the dreaded "address not found in avlmemi" crash. All
1005     this time, I thought it was due to a faulty qsort(3) routine,
1006     when in fact it was due to the way GNU-C compares pointers.
1007     The fix was to change a single word in ambient.c from "AMBVAL"
1008     to "char" and now it all magically works. No more -Dtracktime=0,
1009     hurrah!
1010    
1011     Fixed pcond veil behavior for scenes that have their contrast
1012     reduced by primary tone-mapping algorithms. Previously, the
1013     veil would come out looking like a fog because it was applied
1014     prior to dynamic range compression and did not consider the
1015     overall effect. In the new version, the veil is adjusted
1016     after dynamic range compression so that the net reduction
1017     in visibility is approximately correct over the whole image.
1018     (Later made this optional on compile with the ADJ_VEIL symbol, as I
1019     noticed more artifacts than improvements in the resulting images.)
1020    
1021     Fixed bug in BRTDfunc that caused an error in the calculation
1022     of the diffuse transmitted ambient component. This must have
1023     been introduced early on, but never noticed by me or anyone.
1024    
1025     Wrote an interactive script called "glaze" (src/gen/glaze.csh)
1026     that computes a good material model for fritted and low-E glazing
1027     systems. Thanks to Visarc (Jack de Valpine) for paying for its
1028     development and permitting it into the general distribution.
1029    
1030     Increased scanline window in pcomb to 64 (+/- 32 pixels) to allow
1031     for larger kernels in filtered images.
1032    
1033     ****************** COMPATIBILITY CHANGE ***********************
1034     Changed behavior of pfilt gaussian blur to match more precise
1035     definition. A blur radius of 0.6 is now preferred over the
1036     previous value of 1.0.
1037    
1038     Added ANSI function prototypes to the header files in
1039     src/common/ and src/rt/ and cleaned up the options processing
1040     in the rpict, rtrace, and rview main procedures so that the
1041     core Radiance rendering code can be more easily
1042     called by new application programs. Changed src/rt/Rmakefile
1043     to create a rendering library called "libradiance.a" and
1044     to install it in the src/lib/ directory along with the new
1045     raycalls.o module, which should facilitate the building
1046     of new applications outside the src/rt/ directory. The
1047 greg 1.2 raypcalls.o module, also installed in src/lib, manages
1048 greg 1.1 parallel rendering on multiprocessors with shared memories.
1049    
1050     Wrote new ranimove animation rendering program, which is an
1051     alternative to ranimate. The key difference is that
1052     ranimove is optimized for moving scenes, and includes
1053     a complete blur simulation for camera and object motion.
1054     It also incorporates an sophisticated model of perceivable
1055     error based on visual focus, and allows progressive
1056     animation so one can explicitly control rendering time
1057     and/or accuracy. See the man page for details.
1058    
1059     ****************** COMPATIBILITY CHANGE ***********************
1060     The sense of the MBLUR setting has been changed for the ranimate
1061     command. The first value is now the fraction of a frame during
1062     which the shutter is open, and the _second_ argument (which is
1063     optional) is the number of samples to specify to pmblur.
1064    
1065     Enhanced octree reader behavior so it will accept command
1066     specifications preceded by an exclamation mark ('!'). This
1067     enables rtrace and rview to take octrees from commands similar
1068     to rpict reading its octree from the standard input. All
1069     programs taking octrees as arguments will be affected by this
1070     change. However, since rad needs to get the modified date
1071     from the octree, rad will refuse such an octree command
1072     specification.
1073    
1074     Fixed a bug in src/common/fgetline.c where it failed to elide
1075     carriage-returns in Windows files.
1076    
1077     Modified src/common/fgetword.c so it accepts single- or
1078     double-quoted words with spaces in preparation for the
1079     Windows version, which needs to allow spaces in file
1080     paths. Since fgetword() is called by all programs that
1081     read in string arguments in scene files, these may now
1082     be quoted with the expected behavior. Also added a
1083     fputword() call to the library to automatically quote
1084     words on output that contain white space. This routine
1085     is now called from all the right places, I hope! The
1086     code does not support spaces in primitive identifiers,
1087     and you will get peculiar errors if you try them.
1088    
1089     Eliminated virtually all symbolic links from the source
1090     tree, most of which were links to compatibility routines
1091     and the calcomp functions for expression parsing.
1092     Replaced -D* defines used in cal* routines with "esupport"
1093     global that allows calling programs to set which language
1094     options they want to support at runtime. More programs now
1095     link against the -lrt library. Consolidated the src/cal
1096     subdirectories in the process.
1097    
1098     Added -dw option to pvalue program to input and output
1099     16-bit word values (-dW for byte swapping).
1100    
1101     Changed call ordering in material shaders to ensure
1102     proper surface normal perturbation for two-sided,
1103     textured surfaces.
1104    
1105     Added a new "mesh" primitive, which permits very
1106     complicated geometries with associated (u,v) coordinates
1107     using the new obj2mesh converter and the new -o option
1108     of gensurf for .OBJ output. Mesh compilation takes
1109     roughly 500 bytes/triangle in obj2mesh, but memory
1110     access is well-ordered compared to rendering, which
1111     takes about 50 bytes/triangle with full surface normal
1112     and (u,v) coordinate interpolation. (The actual mesh
1113     is represented in 15 bytes/triangle, and the rest is
1114     taken by the octree structure and malloc overhead.)
1115     Local coordinates are set with the "vt" statement
1116     in the Wavefront .OBJ file and accessed via the new
1117     "Lu" and "Lv" variables in a Radiance .cal file.
1118     Multiple instances of the same mesh with different
1119     transformations take little additional space during
1120     rendering, permitting scanned relief surfaces and
1121     displacement-map-like effects to be repeated as desired.
1122    
1123     Changed internal representation of alias'es in order
1124     to maintain information about links for programs like
1125     rshow that work from frozen octrees. Added a special
1126     alias modifier keyword, "inherit", to indicate that
1127     an alias should get the same modifier as the original
1128     target to simplify common alias usage for material
1129     substitution.
1130    
1131     Increased default oconv -n value to 6. Since triangle
1132     meshes commonly have six faces joining at each vertex,
1133     values less than this cause resolution-limited voxel
1134     subdivision. Increased default -r option to 16384
1135     as well. Also increased maximum internal set size
1136     from 127 to 511, to accommodate difficult mesh
1137     models where many faces come together at a point.
1138     This required a little reprogramming in for couple
1139     of recursive routines using sets to avoid overrunning
1140     the stack limit.
1141 greg 1.4
1142     ==============================
1143 greg 1.166 Version 3.6 (Released 10/21/04)
1144 greg 1.4
1145     Modified 4-byte RGBE encoding routine to avoid problems
1146     when one or two primary values is negative and the other(s)
1147     positive. This used to generate some strange color values.
1148    
1149     Added -oc option to rtrace to output local (u,v) coordinates.
1150    
1151     Fixed bugs in local uv and j unit vector variables in src/rt/func.c.
1152    
1153     Added warning message to OpenGL rendering routines about new
1154     mesh primitive, which we cannot currently render.
1155    
1156     Added -if, -id, -of, and -od options to rcalc to provide for
1157     binary float and double i/o.
1158    
1159     ****************** COMPATIBILITY CHANGE ***********************
1160     Changed holodeck format to used off_t instead of long for beam
1161     positions, which allows holodecks to grow to system file size limit.
1162 greg 1.5
1163     Fixed wrapping long in source hit test code, which would cause
1164     odd horizontal lines in some very long renderings.
1165 greg 1.6
1166     Added -f and -w options to ra_tiff to create IEEE float and 16-bit/primary
1167     TIFF output, respectively. These formats are also understood on reverse
1168     conversion. (16-bit/primary has been understood for some time, but not
1169     IEEE float.)
1170 greg 1.7
1171     Added -N option to rad to start multiple rendering processes in
1172     parallel.
1173 greg 1.8
1174     Fixed bug where mesh instances were not being freed, so subsequent calls
1175 greg 1.35 in programs like ranimove would refer to bogus data.
1176 greg 1.9
1177     Added support in normtiff for floating-point and 16-bit/sample TIFF input
1178     files.
1179 greg 1.10
1180     Changed marksources() routine (src/rt/source.c) to check all
1181     primitives in the modifier chain for emitting types, not only
1182     the first. This permits sources to be described with intervening
1183 greg 1.29 modifiers before the light/illum/glow primitive and allows aliases
1184     as well.
1185 greg 1.10
1186 greg 1.11 Fixed bug in xform where it was neglecting to add transform arguments
1187     to new mesh primitive.
1188 greg 1.12
1189     Added -dF and -dD options to pvalue for byte-swapped floats and
1190     doubles, respectively.
1191 greg 1.13
1192     Changed meta2tga to output correct colors.
1193 greg 1.14
1194     Changed local coordinate index from 32-bits to 16-bits, which requires
1195 greg 1.28 that Radiance mesh files be recompiled. (Later decided against this
1196     change, as it caused problems with some models.)
1197 greg 1.15
1198     Changed integer tone-mapping routines to better deal with images
1199     containing large, constant regions.
1200 greg 1.16
1201     Improved interaction with rholo -o ogl driver under OS X, which was
1202     returning bad values from the depth buffer.
1203 greg 1.17
1204     Minor bug fix in ranimove where it was restarting processes when it
1205     didn't need to.
1206 greg 1.18
1207     Increased accuracy of default ambient parameters in rpict, rview, and
1208     rtrace. In rad program, doubled -ar value, -ad value, and -as value,
1209     and decreased -aa value a bit. Also adjusted -lr upwards and -lw
1210     downwards. I should have done these things long ago, as processors
1211     have been getting faster and faster over the years.
1212 greg 1.19
1213     Fixed bug discovered by Marcus Jacobs where oconv was dumping core
1214     when it was given too many modifiers.
1215 greg 1.20
1216     Fixed problem with rpict where it was drawing illum sources badly
1217     even when they weren't all that small in the view.
1218 greg 1.21
1219     Added in(i) function to rcalc for more flexible channel evaluation.
1220 greg 1.22
1221     Replaced all calls to vfork() with regular fork() calls.
1222 greg 1.23
1223     Fixed bug in glarendx for dgr calculation with sources behind view.
1224 greg 1.24
1225     Added -p option to histo to print percentages/percentiles r.t. counts.
1226 greg 1.25
1227     Added a source occluder cache to accelerate shadow testing. This
1228     can save up to 50% of the calculation time in scenes with many
1229     light sources, especially ones containing large occluders. This
1230     optimization may be tuned or switched off with the -DSHADCACHE=N
1231     compile switch, where N is the resolution of the shadow cache, or
1232     0 to disable it. Since this is purely a time vs. memory trade-off,
1233     I decided not to make it a new command-line option. (We already
1234     have plenty.)
1235 greg 1.26
1236     ****** COMPATIBILITY CHANGE ********
1237     Changed the following command names to avoid conflicts:
1238     rview -> rvu (with symbolic link back to rview)
1239     calc -> icalc
1240     lam -> rlam
1241     gencat -> gencatenary
1242 greg 1.27
1243     Improved -f option of normpat, which caused odd color changes before.
1244    
1245     Created pgblur script which does fast Gaussian blur of image without changing
1246     its dimensions. This is very useful in certain types of image processing
1247     calculations, such as finding or removing low frequencies.
1248    
1249     ****** COMPATIBILITY CHANGE ********
1250     Changed little-used objpict script so that it takes scene files rather than
1251     rpict options on the command line, and puts everything into the right
1252     coordinate position automatically rather than requiring the user to do it.
1253    
1254     Added -I option to replmarks for mesh instancing.
1255 greg 1.29
1256     Made similar change for virtual sources to allow modifiers and aliases
1257     on the mirror and prism types to work properly.
1258 greg 1.30
1259 greg 1.52 Rob Guglielmetti added -lw and -lh options to falsecolor to control the
1260 greg 1.30 legend dimensions. Made it so -lw 0 and/or -lh 0 turns legend off.
1261 greg 1.31
1262     Made it so pcompos will read everything from a stream even if it doesn't
1263     need it, so input commands will not receive a hangup signal.
1264 greg 1.32
1265     Wrote ra_bmp program to convert to and from Windows BMP files (finally).
1266 greg 1.33 It's the most horrible image format I've ever seen, and I've seen a lot.
1267 greg 1.34
1268     Increased -aa default value for all renderers (and also -ad and -as in
1269     rview) at Schorsch's suggestion. I think this undid my earlier decrease
1270     of -aa last time, which I guess was ill-considered.
1271 greg 1.35
1272     Modified oconv to keep subdividing the octree if there are too many
1273     objects in a voxel even when the -r resolution limit has been
1274     reached. This was not done before due to problems with recursion,
1275     and still, it will only continue to 256 times the original -r limit.
1276     If that isn't enough, then there's probably no hope, anyway.
1277 greg 1.36
1278     Added -l option to obj2mesh to search for material files in library
1279     locations.
1280 greg 1.37
1281     Increased polygon vertex limit to 512 in obj2mesh and obj2rad and added
1282     warning if this limit is exceeded.
1283 greg 1.38
1284     Added tone-mapping and monitor primary options to ra_bmp. This gives
1285     new functionality similar to normtiff and ximage. It would be nice to
1286     add this feature to the other ra_* programs as well... someday.
1287 greg 1.39
1288     Fixed long-standing bug in reported pixel ordering out of certain
1289     protate commands.
1290 greg 1.40
1291     Added -p option to rcalc for "passive mode" that transmits
1292     unrecognized input -- useful for substituting data in the
1293     middle of a stream.
1294 greg 1.41
1295     Fixed a very obscure bug in rpict that caused a dark horizontal
1296     line in certain cylindrical projections due to improper drawing
1297     of the sky dome source in rt/srcdraw.c.
1298    
1299 greg 1.52 Fixed problems with effective ray lengths computed for dielectric
1300 greg 1.41 and BRTDfunc materials. This was most evident in breakup of holodeck
1301     views when VDISTANCE=True.
1302 greg 1.42
1303     Fixed rad so that 'scene' variable may consist only of inline commands.
1304 greg 1.43
1305     Fixed bug introduced in shadow caching routines where sources in the
1306     middle of spheres were not illuminating properly. Thanks to Guilio
1307     Antonutto for spotting this problem.
1308 greg 1.44
1309     Modified gensky behavior so if time is given with standard time zone
1310     designation, any -m option is ignored.
1311 greg 1.45
1312     Added -n option to mkillum for (shared memory) parallel processing.
1313 greg 1.46
1314 greg 1.47 Fixed a long-standing bug in parallel processing code that only
1315     seemed to manifest with the new mkillum -n option, where rtrace
1316     would deadlock upon termination. The reason it never showed up
1317     before is because I always closed processes in the reverse order
1318     of opening them in other programs. I went through and found similar
1319     (potential) bugs in the rview device subprocess code and util/netproc.c.
1320 greg 1.48
1321     Corrected the normalization of the Gaussian reflectance model. This will
1322     cause an increase in specularity for low-lying light sources.
1323     Thanks to Don Walters of Boeing and Arne Duer of the Univ. of Innsbruck
1324     for pointing out this error. The square root used for the two cosines
1325     in the denominator of the normalization factor should not be present.
1326     This was a serious mistake I made in the original model, which went
1327     undiscovered (at least to my knowledge) for over a decade. I think
1328     Bruce Walter of Cornell may have known about it, but I never heard
1329     the details of his discovery.
1330 greg 1.49
1331     Enabled the -p option for primary conversion without tone-mapping
1332     in ra_bmp. Also provides for XYZE input conversion to RGB.
1333 greg 1.50
1334     Fixed what I consider a bug in pvalue -o when taking XYZE files on input,
1335     where it was inappropriately undoing the exposure value so that it always
1336     reported radiance rather than XYZ values with Y in cd/m^2.
1337 greg 1.51
1338     Made it so ra_bmp only produces run-length encoded 8-bit output for
1339     grayscale images that are tone-mapped. This minimizes circumstances
1340     under which output scanline order is reversed.
1341 greg 1.53
1342     Fixed bug in rcalc where it sometimes wasn't parsing the input format
1343     correctly.
1344 greg 1.54
1345     =====================
1346 greg 1.166 Version 3.7 (Released 7/25/05)
1347 greg 1.54
1348     Fixed bug in source occluder cache which caused consistency error
1349     for distant sources and mist materials. (Thanks to Mark Stock for
1350     finding the problem.)
1351    
1352     Fixed serious bug in source drawing routines for rpict, where the edges
1353     of light sources were appearing through obstructions. (Thanks to Veronica
1354     Sundstedt for pointing this out.)
1355    
1356     (The above were included in the 3.6.1 patch release.)
1357 greg 1.55
1358     Changed default temporary directory from /usr/tmp, which doesn't exist
1359     on a lot of systems these days, to /tmp.
1360 greg 1.56
1361     Eliminated many unused files and programs from the distribution, including
1362     the following programs that were being built but no longer used:
1363     oki20 - printer driver for OkiMate 20 printer (B&W)
1364     oki20c - printer driver for OkiMate 20 color printer
1365     pcwarp - intended as more general substitute for macbetcal,
1366     but never quite worked
1367     ra_avs - convert to & from AVS image format
1368     ra_bn - convert to & from Barneyscann format
1369     ra_pr - convert to & from 8-bit Sun rasterfile format
1370     ra_pr24 - convert to & from 24-bit Sun rasterfile format
1371     thf2rad - convert GDS "things file" to Radiance scene format
1372     If anyone is still wanting any of the above programs, let us know and we'll
1373     reinstate it.
1374 greg 1.57
1375     Fixed bug in pcond's acuity simulation for small view angles (less than
1376     4 degrees horizontally or vertically). Thanks to James Lee for figuring
1377     this out.
1378 greg 1.58
1379     Added script to convert to/from ICT's Poskanzer Float Map, which I don't
1380     care to support officially due to its machine-dependent byte order.
1381 greg 1.59
1382     Fixed bug that caused incorrect reporting of non-surface in set when
1383     mixing meshes and instances. (Thanks to Jack de Valpine for discovery.)
1384 greg 1.60
1385 greg 1.89 Fixed inaccuracy in calculation of diffuse transmission in the presence
1386 greg 1.60 of pure specular (Fresnel reflection) using "trans" material. Thanks
1387     to Christoph Reinhart for pointing out the error.
1388 greg 1.61
1389     Made internal change to tone-mapping library to use structure pointer
1390     rather than stack, making code re-entrant and more up to modern standards.
1391 greg 1.62
1392     Added -pd option to handle depth-of-field blur in rpict. This requires
1393     that the view directon (-vd option) include focal distance information,
1394     which is now preserved by the various view file routines, and reported
1395     by the vwright command.
1396 greg 1.63
1397     Added DBLUR variable to ranimate and pmdblur script to handle simultaneous
1398 greg 1.65 motion and depth-of-field blurring. Thanks to Visarc for funding this work.
1399 greg 1.64
1400     Added setting of focus distance in rvu ("focus" command) and rholo
1401     ('f'/"frame" command).
1402 greg 1.65
1403     Changed default remote shell in ranimate to "ssh" rather than "rsh",
1404     which has been abandoned on most Unix systems due to security issues.
1405 greg 1.66
1406     Fixed behavior of source primitive using illum with no alternate
1407     material. These now become transparent so one can see the sky or
1408     light-probe background for use in image-based lighting. Previously,
1409     the user needed to specify the background glow as the alternate
1410     material for a distant illum source to behave properly. (This still
1411     works.)
1412 greg 1.67
1413     Fixed some minor problems and inconsistencies with 16-bit/channel
1414     TIFF i/o in ra_tiff.
1415 greg 1.68
1416     Created mksource program to generate distant sources for improved
1417     image-based lighting with light probes.
1418 greg 1.69
1419     Changed ambient calculation so that -ad will not limit recursion
1420     depth, and a minimum of 27 samples will be sent out for each stored
1421     ambient value, or 3 samples if -aa is 0 (caching off).
1422 greg 1.70
1423     Added -oM option to rtrace to report material (rather than modifier)
1424     for cases where actual material is aliased or further up modifier chain.
1425 greg 1.71
1426     Rearranged the way ray contributions are computed so that it might be
1427     possible to use rtrace to derive daylight coefficients and optical
1428     transfer functions. The new -oTW option of rtrace produces color
1429     contribution weights for each ray, which combined with the -ti (or -tI)
1430     option permits the contribution of selected surfaces or sources to
1431     be determined. Using the -oTW option, one should also specify
1432     options "-dt 0 -aa 0 -as 0" for optimal results. In particular,
1433     one cannot expect reasonable tallies with -ab >= 1 and irradiance
1434     caching on (-aa > 0).
1435    
1436     The same code modifications included a change to the indirect computation
1437     with caching switched off (-aa 0). Whereas before, the number of secondary
1438     rays after the first bounce were half of the previous generation, they are
1439     now determined by the surface reflectance, making for a better and faster
1440     calculation. It should now be possible to compute many bounces with -aa 0,
1441     which used to be prohibitively expensive.
1442 greg 1.72
1443     Added -T option to xshowtrace to trace rays to light sources.
1444 greg 1.73
1445     Added meta2bmp program to produce BMP files from metafile graphics.
1446 greg 1.74
1447     Added cct_x(t) and cct_y(t) to src/cal/cal/blackbody.cal to interpolate
1448     CIE chromaticities for particular black-body temperatures.
1449 greg 1.75
1450     Increased maximum number of input pictures in pcomb and pcompos to 512.
1451    
1452     Created rtcontrib program for computing ray contribution coefficients.
1453     This tool may be used to do standard optical ray tracing or daylight
1454     coefficient calculations for annual simulations, among other uses.
1455 greg 1.76
1456     Added tilde ('~') output option as part of the -o* specification of
1457     rtrace. This permits ray trees to be parsed more easily in binary
1458     output mode, as needed by rtcontrib.
1459 greg 1.77
1460 greg 1.78 Implemented Russian roulette ray termination with -lr <= 0.
1461     Made -lr -10 the default in rtcontrib.
1462    
1463     Made rtcontrib -f option search RAYPATH directories.
1464 greg 1.79
1465     Made it so -o option of rtcontrib can pipe -o output to a command.
1466    
1467     Added -if and -of options to total for binary i/o (following rcalc mold).
1468 greg 1.80
1469     Switched default options in rtrace to use Russian roulette. (Rpict and rvu
1470     still use biased ray termination.)
1471 greg 1.81
1472     Added rtcontrib -r option to recover partial output.
1473 greg 1.82
1474 greg 1.85 Added -u rendering option for pure Monte Carlo sampling.
1475     (Got rid of -DMC compile option, which this makes superfluous.)
1476 greg 1.83
1477     Changed -t option of rlam to accept strings as well as single characters.
1478 greg 1.84
1479     Fixed bug in rcalc with -l option where it would sometimes go into an
1480     infinite loop.
1481 greg 1.86
1482     Fixed truly ancient bug in bounding box computation for cones, which
1483     could (and did) cause missing segments.
1484 greg 1.87
1485     Added -z option to normtiff to output LZW-compressed files.
1486 greg 1.88
1487     Last change to total causes it to produce results when it sees an empty
1488     line on the input. This was not intentional, but I decided I like this
1489     behavior so I documented it rather than changing it.
1490 greg 1.89
1491     =====================
1492 greg 1.166 Version 3.8 (Released 10/17/06)
1493 greg 1.89
1494 greg 1.90 Fixed Russian roulette ray termination, which was doing the opposite of
1495     what it should have been doing, resulting in overestimated values below
1496     minimum ray sampling weight (serious).
1497 greg 1.91
1498 greg 1.92 Changed mksource to use 98th percentile (rather than 99th) for threshold.
1499    
1500     (Above changes included in 3.7.1 patch release.)
1501 greg 1.93
1502     Eliminated writing of EXPOSURE= line in ra_tiff -r when source TIFF
1503     does not have STONITS set.
1504 greg 1.94
1505     Fixed bug in ambient calculation that caused black values for multiple
1506     bounces in some scenes. Thanks to Mark Stock for creating and sharing
1507     the sophisticated test scene that demonstrated this problem.
1508    
1509 greg 1.95 Fixed bug in antimatter using Russian Roulette sampling.
1510    
1511 greg 1.94 (Above changes included in 3.7.2 patch release 22 Aug 2005.)
1512 greg 1.96
1513     Created fieldcomb script to combine alternate fields in a rendering
1514 greg 1.97 sequence. (Development generously sponsored by Iebele Abel.)
1515 greg 1.98
1516     Added missing preload of mesh objects for more efficient memory use
1517     during parallel rendering -- this was a serious oversight.
1518 greg 1.99
1519     Created ran2tiff program to automate exposure setting of animation
1520     sequences using a moving histogram in combination with pcond, and
1521     converting frames to TIFF.
1522 greg 1.100
1523     Eliminated SPEED macro from makeall and source tree.
1524 greg 1.101
1525     Added -pj option to vwrays to allow jittering of sample locations.
1526 greg 1.102
1527     Fixed bug in rtcontrib where it occasionally missed writing the
1528     final bin file. (Pretty serious, actually.)
1529 greg 1.103
1530     Added -Dfseeko=fseek to MACH= line for linux, as fseeko(3) seems to be
1531     broken in current versions of Linux. (Need to remove this later.)
1532 greg 1.104
1533     Rearranged struct's for better efficiency on 64-bit architectures.
1534 greg 1.105
1535     Added -i option to rlam so it works with binary input formats.
1536 greg 1.106
1537     Added rtcontrib -bn option to specify number of bins and fixed bug
1538     in recovery of files containing multiple values per record.
1539 greg 1.107
1540     Added rtcontrib -fo option to write over existing files, which it now
1541     refuses to do without this option.
1542 greg 1.108
1543     Made rtcontrib flush output when handed a zero-length ray vector,
1544     to match behavior of rtrace.
1545 greg 1.109
1546     Improved color scale for falsecolor output.
1547 greg 1.110
1548     Added threshold test for Fresnel approximation to prevent its use
1549     on smooth surfaces with unrealistically low specularities (less than 1.8%).
1550     Water has a specular reflectance of 2.1% at room temperture.
1551 greg 1.111
1552     Removed NICE macro settings in rpict and rtrace, which was slowing down
1553     the processes under Mac OS X (10.4) by about 60% due to processor napping.
1554 greg 1.112
1555     Made xform, replmarks and rad2mgf handle quoted modifiers and names properly.
1556 greg 1.113
1557     Fixed problem in genblinds, where it was generating slats that were too
1558     wide with the +/-r option. (Thanks to Helena Buelow-Huebe for discovering
1559     this bug.)
1560 greg 1.114
1561     Fixed bug in ra_ppm for 16-bit/sample i/o, where it was getting the byte
1562     order wrong (apparently).
1563 greg 1.115
1564     Added -V option to rtcontrib to report actual contributions, rather than
1565     just ray coefficients.
1566 greg 1.116
1567     Fixed bug in ranimate that caused it to fail in continuation of renderings.
1568 schorsch 1.117
1569     Renamed librt.a to librtrad.a, to avoid conflict on Solaris. Almost
1570     everything now gets linked to -lrtrad instead of -lrt.
1571    
1572 greg 1.118 Fixed problem with large sample sets, so -u+ option now is truly random.
1573 greg 1.120 Thanks to Rick Mistrick and Younju Yoon for identifying this problem,
1574     which was related to a poorly designed hash function.
1575 greg 1.119
1576     Changed -u+ to be the default setting in rtrace (only).
1577 greg 1.121
1578     Fixed binary i/o for rlam and vwrays under Windows.
1579 greg 1.122
1580     Added tmCvLums() to tone-mapping routines using a 16-bit lookup table
1581     on IEEE floats, which is also used to improve speed of COLOR conversions,
1582     especially on machines with slow log() calls. The first call to
1583     tmCvLums(), tmCvGrays(), or tmCvColors() initializes the table.
1584 greg 1.123
1585     Created optics2rad.csh script to convert from Optics 5 material output
1586     to something correct for Radiance. Built on old glazing.cal function,
1587     which is actually incorrect so removed from the distribution.
1588 greg 1.124
1589     Fixed nuisance bug in ximage under some SGI machines that caused it to
1590     choose an inappropriate visual and display incorrect colors. (Thanks
1591     to Oskar Itzinger for debugging the problem.)
1592 greg 1.125
1593     Fixed long-standing inaccuracy of pcompos -t and +t thresholding options.
1594 greg 1.126
1595     Fixed bug in handling of views with tabs rather than spaces.
1596    
1597     Fixed bug related to alias of alias.
1598 greg 1.127
1599     ****** COMPATIBILITY CHANGE ********
1600     Changed default sky turbidity in gensky from the original default of
1601     2.75 to the CIE 110-1994 standard value of 2.45. Thanks to Marilyne
1602     Anderson of MIT for pointing out this discrepancy.
1603 greg 1.128
1604     Added -o option to ra_xyze to produce original pixel values.
1605 greg 1.129
1606     Fixed bug in tracing of virtual sources, where intervening glazing was
1607     not being accounted for properly.
1608 greg 1.130
1609     Added -h option to pcompos and pcomb to eliminate verbose headers.
1610 greg 1.131
1611     =====================
1612 greg 1.166 Version 3.9 (Released 3/30/08)
1613 greg 1.131
1614     Added -spec option to falsecolor to restore original spectral color scale.
1615     Also added "-s auto" option to automatically set the maximum value.
1616 greg 1.132
1617     Added byte-swapping input and output to rcalc.
1618 greg 1.133
1619     Additional error-checking for source surfaces.
1620 greg 1.134
1621     Re-fixed bug in octree code that caused it to allocate 8 times as
1622     much memory as it actually used(!) -- this was pointed out way back
1623     in 1999 by Erik Reinhard and Erik Jansen, but the fix they gave me
1624 greg 1.145 got lost in the slightly broken release process at the time. This
1625 greg 1.134 should make a big difference in memory usage, especially for the
1626 greg 1.136 new mesh primitive. (I measured 30% less memory usage.)
1627 greg 1.135
1628     Corrected ray weights for material mixtures.
1629 greg 1.136
1630     Reduced the default -n setting for obj2mesh to take better advantage
1631     of the smaller octree structure size.
1632 greg 1.137
1633     Fixed bug in shadow cache where it was adding surfaces with antimatter
1634     holes cut in them to the obstructor list. Thanks to John Mardaljevic
1635     for discovering and reporting the problem.
1636 greg 1.138
1637     Adding ability in mkillum to incorporate BSDF data in calculation.
1638     Internal interface (raypcalls) now used in place of rtrace process(es).
1639 greg 1.139
1640     Fixed pixel alignment in pcomb for size reduction and enlargement.
1641 greg 1.140
1642     Allow rtcontrib user to set -P and -PP options for persistent rendering.
1643     The only caveat is that -n setting > 1 requires -PP rather than -P.
1644 greg 1.141
1645     Added -c option to rtcontrib to facilitate cumulative calculations.
1646 greg 1.142
1647 greg 1.143 ****** COMPATIBILITY CHANGE ********
1648     Fixed long-standing bug in source.cal, which caused it to produce
1649     reversed anisotropic photometric distributions due to the
1650     misorientation of the y-axis. Thanks to Zack Rogers for discovering
1651     and helping debug this problem.
1652 greg 1.144
1653     Fixed long-standing bug in replmarks, where triangles with X-side
1654     aligned with Z-axis would cause incorrect rotations. Thanks to
1655     Zack Rogers for finding this error.
1656 greg 1.145
1657     Added rsensor program to compute sensor signal for daylighting controls.
1658     Funding for this component was provided by the Architectural Energy
1659     Corporation in Boulder, CO, and directed by Zack Rogers.
1660 greg 1.146
1661     Added "planisphere" (stereographic) fisheye view type for traditional
1662     daylighting analysis. Feature requested & explained by Axel Jacobs.
1663 greg 1.147
1664     Modified -c option to rtcontrib so it can take a number of input
1665     rays to average over, rather than only produce a single accumulated
1666     record (which can now be done with -c 0).
1667 greg 1.149
1668     =====================
1669 greg 1.166 Version 4.0 (Released 3/12/10)
1670 greg 1.150
1671     Added -n option to rvu to provide parallel rendering.
1672 greg 1.151
1673     ****** COMPATIBILITY CHANGE ********
1674     Changed ".pic" extension to ".hdr" in all sources and documentation
1675     to improve interoperability with other software, since this has become
1676     the de facto extension for Radiance RGBE and XYZE pictures. Since file
1677     extensions were never more than a convention in Radiance, this does not
1678     affect operation, but may require the update of scripts, etc. written
1679     by others that assume the ".pic" suffix for Radiance output.
1680 greg 1.152
1681     Added -N option to objview to support multiprocessing.
1682 greg 1.153
1683     Improved sampling of circular sources (source, sphere, ring types) with
1684     quite a bit of help from David Geisler-Moroder.
1685 greg 1.154
1686     Added "rpict" and "rvu" variables to rad, and made these as well as
1687     the "oconv", "mkillum" and "pfilt" variables accept an alternate
1688     command path in each case. Change suggested by Lars Grobe based
1689     on similar Radzilla (radz) facility by Carsten Bauer.
1690 greg 1.155
1691     Fixed rad -v N specification to use actual view name if one.
1692 greg 1.156
1693     Fixed error in mkillum calculation where it neglected indirect
1694     source contributions from BTDF illum's.
1695 greg 1.157
1696     Added GMT and LATLONG header lines for Greenwich Mean Time and
1697     degrees North Latitude / East Longitude.
1698 greg 1.158
1699     Added gendaylit to distribution (finally).
1700 greg 1.159
1701     Added ability in vwright(1) to get view from command line arguments.
1702    
1703 greg 1.160 Created genklemsamp(1) utility to generate samples suitable for
1704     BSDF-based annual calculations. This is the first Perl script to
1705     be added to Radiance. Hopefully, others will follow.
1706    
1707     Added klems_int.cal file to compute Klems bins for windows.
1708 greg 1.161
1709 greg 1.167 Created genskyvec utility to sample a particular sky and
1710 greg 1.161 evaluate average radiance over the standard Tregenza sky patches.
1711 greg 1.162
1712     Created dctimestep program to compute a set of sensor values or
1713     a combined image for a particular time using the daylight
1714     coefficient method.
1715 greg 1.163
1716     Created src/rt/rayfifo.c for first-in/first-out handling of
1717     multiprocessing by raypcalls.c.
1718 greg 1.164
1719     Added -n option to rtrace for executing on multiple cores
1720 greg 1.165 using new rayfifo calls.
1721 greg 1.167
1722     =====================
1723 greg 1.192 Version 4.1 (Released 11/04/2011)
1724 greg 1.167
1725     Changed ranimate behavior so remote login under a different user
1726     doesn't necessarily require the presence of the originating user's
1727     home directory.
1728 greg 1.168
1729     Changed standard transmission function normalization back to what
1730     it was in version 3.5, following recommendation of David Geisler-Moroder,
1731     who pointed out that the revised BTDF increased too much at grazing.
1732 greg 1.169
1733     Changed rad behavior with -N >1 on single view to call rpiece.
1734 greg 1.170
1735     Updated SCons build system for MINGW compilation, thanks to Christian
1736     Kohler.
1737 greg 1.171
1738     Added -u option to rlam for unbuffered output.
1739 greg 1.172
1740     Modified dctimestep to accept sky vector and daylight coefficient matrix
1741     or list of images to sum together, as suggested by Andy McNeil.
1742 greg 1.173
1743     Created genBSDF script to generate BSDF in Windows XML format.
1744    
1745     Modified mkillum to accept detailed geometry from BSDF XML files.
1746 greg 1.174
1747     Altered obj2rad to ignore zero normals (thanks to Jack de Valpine for
1748     suggestions and help).
1749 greg 1.175
1750     Fixed bug in genklemsamp that caused non-uniform sampling over surfaces.
1751    
1752 greg 1.181 Fixed bugs in rhoptimize and rhcopy for 64-bit compilation.
1753 greg 1.175
1754 greg 1.181 Made a change to avoid problem using gcc --fast-math compile option.
1755 greg 1.175
1756     ****** COMPATIBILITY CHANGE ********
1757     Changed behavior of rtrace and rtcontrib so that every scanline is
1758     not flushed when both -x and -y are set. This avoids flush delays
1759     in rtcontrib for large numbers of output files and delays while
1760     rendering images using rtrace with the -n option.
1761    
1762     Added ability for rsensor to output ray origins and directions
1763     rather than actually loading octree and computing sensor value.
1764 greg 1.176
1765     Fixed old bug in obj2rad where it would stop processing and
1766     report a syntax error if the "void" type is used in the map file.
1767 greg 1.177
1768     Updated reflection model according to EGSR 2010 paper by David
1769     Geisler-Moroder and Arne Duer.
1770 greg 1.178
1771     Replaced C-shell version of falsecolor with Perl script written
1772     by Axel Jacobs.
1773 greg 1.179
1774     ****** COMPATIBILITY CHANGE ********
1775     Changed -sj (specular jitter) option to something called specular
1776     sampling (-ss), which if set less than 1 has the same behavior as
1777     the old -sj, but when set greater than 1, spawns multiple ray
1778     samples from semi-specular surfaces.
1779 greg 1.180
1780     Fixed bug noticed by Randolph Fritz that caused ambient sync errors.
1781 greg 1.182
1782     Fixed bug in findglare for reading picture files under Windows.
1783 greg 1.183
1784     Added options to pvalue to note other color spaces on reverse conversion.
1785     Thanks to Erich Philips for the feature request.
1786 greg 1.184
1787     Added BSDF data-driven material type with full sampling support.
1788 greg 1.185
1789     Added BRDF calculations to genBSDF.
1790 greg 1.186
1791     Bug fixes in rsensor thanks to help from David Geisler-Moroder.
1792 greg 1.187
1793     Added variable-resolution BSDF support in renderers and genBSDF.
1794 greg 1.188
1795     Created pkgBSDF program to extract BSDF geometry and put it
1796     together with surface description suitable for inclusion in
1797     a Radiance scene.
1798 greg 1.189
1799     Muted warning for "no light sources found" when there is at least
1800     one glow object and interreflections are on (-ab > 0).
1801 greg 1.190
1802     Fixed long-standing bug that caused underestimation of reflection
1803     when specular component was below -st threshold in non-metals.
1804 greg 1.191
1805     Checked in cross-platform cmake build system created by Bill Hoffman
1806     of KitWare and sponsored by NREL. This includes a qt-based
1807     driver for rvu, which is built in the new subdirectory src/qtrvu.
1808 greg 1.192
1809     =====================
1810 greg 1.241 Version 4.2 (Release date 7/31/2014)
1811 greg 1.192
1812     Axel Jacobs added -cp and -palettes options to falsecolor.
1813 greg 1.193
1814     Fixed bug in matrix output of genBSDF introduced shortly before 4.1 release.
1815 greg 1.194
1816     Made rvu more responsive in multi-processing mode when changing parameters.
1817     Explicit "new" command not needed to show changes, because it goes back
1818     to "immediate mode" once something is changed. Processing will be slow
1819     but response time quick until next "new" command.
1820 greg 1.195
1821     Fixed major bug in transmitting proxy material sampling.
1822 greg 1.196
1823     Patched cmake build tools (changes by Zack Galbreath).
1824 greg 1.197
1825     Removed requirement for pflip -h to be given input file (can pipe from stdin).
1826 greg 1.198
1827     Added "Number of processes" slider to trad "Action" pane to control rad -N
1828     option for rvu and batch rendering.
1829 greg 1.199
1830     Added -c option to vwrays to repeat pixels for rtcontrib.
1831 greg 1.200
1832     Reworked rtcontrib program and renamed to rcontrib. New version runs much
1833     faster, especially on multiprocessor systems, and doesn't require as much
1834     memory. No longer calls rtrace; instead does all the work itself.
1835 greg 1.201
1836     Added -d option to genskyvec to produce direct-only (sun no sky) vector.
1837 greg 1.202
1838     Added Ashikhmin-Shirley anisotropic BRDF model (ashik2) with help
1839     from Nicolas Boneel.
1840 greg 1.203
1841     Added Ruby rewrite of objview.csh by Rob Guglielmetti.
1842 greg 1.204
1843     Fixed bug in reciprocity for tensor tree BTDF representations. Thanks
1844     to Andy McNeil for identifying the problem.
1845 greg 1.205
1846     Added MNAME and ZNAME variables to ranimove for debugging & testing.
1847 greg 1.206
1848     Created pmblur2 command to take motion and depth buffers from ranimove
1849     to compute a better motion blur.
1850 greg 1.207
1851     ****** COMPATIBILITY CHANGE ********
1852     Changed BSDF routines to use updated/corrected XML specification and
1853     removed depracated BSDF support from mkillum.
1854 greg 1.208
1855     Fixed behavior of i/o flushing in rcontrib with -c > 1 (averaging). Thanks
1856     to Lars Grobe for help identifying this problem.
1857 greg 1.209
1858     Fixed bug in depth-of-field blur where view distance was measured from
1859     fore clipping plane rather than viewpoint. Thanks to Peter A-B for
1860     pointing this out.
1861 greg 1.210
1862     Added options to dctimestep to allow multiple time steps (-n)
1863 greg 1.211 and multiple output pictures or sensor files (-o). Also added -i
1864     option to specify float (-if) or double (-id) input for sky matrix.
1865 greg 1.212
1866     Created gendaymtx program to compute annual sky patch matrix based
1867     on Ian Ashdown's implementation of Perez all-weather sky model.
1868     Output can be sent directly to dctimestep in ASCII or binary stream.
1869 greg 1.213
1870     Replaced existing gendaylit.c with improved version from Wendelin Sprenger
1871     and Jan Wienold of ISE.
1872 greg 1.214
1873     Improved accuracy of ambient calculation for large -ad settings. Thanks
1874     to Lars Grobe for noticing the problem.
1875 greg 1.215
1876     Added -r option to gendaymtx to rotate the sky the specified number of
1877     degrees about the zenith as suggested by A. McNeil.
1878 greg 1.216
1879 greg 1.217 Axel Jacobs added -pal eco color map that does a blue-red-yellow scale.
1880 greg 1.218
1881     Created bsdf2klems tool to convert from various BSDF representations to
1882     Klems basis matrix in XML file.
1883 greg 1.219
1884     Fixed problem with inappropriate reciprocity enforcement on tensor
1885     tree reduction in genBSDF. (Thanks to A.McNeil for discovering issue.)
1886 greg 1.220
1887     Fixed bug in isotropic tensor tree sampling for impinging rays
1888     exactly normal to surface. Thanks to Peter Apian-Bennewitz for
1889     discovering and pointing out the error.
1890 greg 1.221
1891     Fixed double-counting bug in mirror material with alternate type.
1892     Thanks to David Geisler-Moroder for spotting the problem and helping
1893     to fix it.
1894 greg 1.222
1895     Created rcollate program to resize and transpose matrix data for Andy
1896     McNeil's 5-phase annual simulation method.
1897 greg 1.223
1898     Added epw2wea conversion program by Christoph Reinhart.
1899 greg 1.224
1900     Implemented Perlin's improved noise function with help from Rahul Narain.
1901     This will change the appearance of renderings using this function.
1902 greg 1.225
1903     Added "origin" command to rvu as requested by John Mardaljevic
1904     to place view origin at selected point in scene.
1905 greg 1.226
1906     Switch to Perl versions of objview and objpict written by Axel Jacobs.
1907 greg 1.227
1908     Improved rendering speed of scenes with aliases by not entering new
1909     modifiers into table if they are the same as the previously defined
1910     modifier for that name.
1911 greg 1.228
1912     Made it so icalc and rcalc search RAYPATH directories for *.cal files
1913     given on command line. This simplifies script writing and makes these
1914     utilities consistent with other tools in Radiance.
1915 greg 1.229
1916     Added triangulation routine to handle convex polygons in obj2mesh.
1917 greg 1.230
1918     ****** COMPATIBILITY CHANGE ********
1919     Made backface visibility apply to all material types, including
1920     transparent and translucent materials (except dielectric and interface).
1921     This makes the option useful in cases where adjacent trans surfaces
1922     are placed next to each other by a modeler that only understands
1923     volumetric objects.
1924 greg 1.231
1925     Changed dctimestep so that output matrices (-n > 1) are preceded by a
1926     header, and added support for float and double output formats with -o[fd].
1927 greg 1.232
1928     Introduced eplus_adduvf program to compute user view factors for EnergyPlus.
1929 greg 1.233
1930     Changed image-plane sampling in rpict to use Hilbert curve, which gives
1931     less of a brushed/striped appearance to output pixels with -u- (default).
1932 greg 1.234
1933     Added ltview and ltpict Perl scripts contributed by Axel Jacobs, inspired
1934     by Rob Guglielmetti.
1935 greg 1.235
1936     Added header variables for NROWS, NCOLS and NCOMP to help standardize
1937     matrix files. This functionality has been incorporated into
1938     rcollate, gendaymtx, and dctimestep.
1939 greg 1.236
1940     Created rmtxop utility to operate on multi-component matrices. This
1941     facilitates some daylight matrix calculations, and provides a general
1942     tool for manipulating matrix data.
1943 greg 1.237
1944     ****** COMPATIBILITY CHANGE ********
1945     Introduced new Hessian-based error control in irradiance caching (ambient)
1946     calculation. Since the format of the stored ambient values is different,
1947     the old files will be rejected with an error message and must be removed.
1948     The programs may be compiled with the -DOLDAMB option if this is a problem.
1949 greg 1.238
1950     Added -p option to rcontrib to set function file parameters on a per-modifier
1951     basis to simplify bin evaluation.
1952 greg 1.239
1953     Created rfluxmtx program to compute flux transfer matrices from a sender
1954     surface to one or more receiver surfaces. (Renamed the file klems_int.cal
1955     to klems_full.cal in the process.)
1956 greg 1.240
1957     Added "-c" option to getinfo to execute command on data segment.
1958 greg 1.241
1959 greg 1.270 ================================
1960     Version 5.0 (Released 9/18/2015)
1961 greg 1.242
1962     Changed rmtxop so it writes out same type as lesser of inputs unless
1963 greg 1.260 directed otherwise using -f? option.
1964 greg 1.243
1965     Changed order of oconv arguments in rfluxmtx so user can specify input
1966     octree using -i option at the end instead of (or in addition to) a
1967     list of scene files.
1968 greg 1.244
1969 greg 1.245 Added support for argument expansion to rfluxmtx and bug fixes.
1970    
1971     Fixed bug in indirect hemisphere sampling for some corner cases.
1972    
1973     Added default specular lobe to BSDF interpolation.
1974 greg 1.246
1975     Set minimum number of shadow checks before direct optimization (4).
1976 greg 1.247
1977     (Above changes included in 4.2.1 patch release.)
1978 greg 1.248
1979     ****** COMPATIBILITY CHANGE ********
1980     Made header input and output the default behavior for dctimestep and
1981     genskyvec.
1982 greg 1.249
1983     ****** COMPATIBILITY CHANGE ********
1984     Changed pabopto2bsdf default behavior to add 90-degree rotation
1985     to bring pgII's definition of "up" in line with Klems axis
1986     conventions. Introduced a new header variable "upphi" to
1987     control this added rotation. Using "#upphi 90" in each
1988     BSDF input file gets back the original behavior, where it
1989     assumes that the up direction is 90-degrees from the X-axis.
1990     The default value of 0 corresponds to PAB's definition of
1991     the X-axis as being "up".
1992 greg 1.250
1993     Fixed bug in rsensor related to having many rows (altitude) and
1994     few columns (azimuth) in sensitivity file.
1995    
1996     Fixed floating point round-off error in new Hessian calculation
1997     for some sytems (Windows, primarily).
1998    
1999     Fixed bug in tensor tree BSDF code that caused bus error on
2000     some systems, and may have been source of other errors as well.
2001    
2002     (Above changes included in 4.2.2 patch release.)
2003 greg 1.251
2004     Improved ambient extrapolation to avoid zero values. Actual
2005     threshold set to 5% of recorded value.
2006 greg 1.252
2007     Changed anisotropic Gaussian and Ashikhmin models so that
2008     illegal orientation vectors are dealt with more gracefully.
2009 greg 1.253
2010     Created wrapBSDF tool and incorporated into genBSDF along
2011     with new rfluxmtx computation.
2012 greg 1.254
2013     Initial check-in of Roland Schregle's photon map integration.
2014     New 5.0a version designation as suggested by Andy McNeil.
2015 greg 1.255
2016     Added left-hand coordinate sytems to rfluxmtx to correct
2017     problems with coordinate axis orientations pointed out by
2018     David Geisler-Moroder.
2019 greg 1.256
2020     Added color output to genBSDF (+C option) and support for
2021 greg 1.257 color rendering of Klems and tensor tree data.
2022 greg 1.258
2023 greg 1.260 Fixed another bug in rsensor that caused rays to be generated
2024     on opposite side of hemisphere even where sensitivity was zero.
2025    
2026 greg 1.258 Fixed bug discovered by Jacob Jonsson in Klems BSDF
2027     interpolator that caused it to over-predict normal
2028     transmittance and reflectance.
2029 greg 1.259
2030     Added ability to read input from commands in dctimestep
2031 greg 1.260 and rmtxop.
2032 greg 1.261
2033     Added photon map support to rad. Fixed some double-counting
2034     issues in photon-mapping spotted by David Geisler-Moroder.
2035 greg 1.262
2036     Added photon map support to trad.
2037 greg 1.263
2038     Fixed bug in antimatter source testing when antimatter
2039     definition follows potential obstructor in input.
2040 greg 1.264
2041     Fixed issue with missing character type identifier at head
2042     of genBSDF XML output.
2043 greg 1.265
2044     Prompted by Roland S., added option to have pcompos -a order
2045     rows from top rather than bottom of image.
2046 greg 1.266
2047     Changed dctimestep to accept matrix as well as BTDF input
2048     in the VTDs invocation mode. This permits the output of
2049     rmtxop to be used in a pinch when combining multiple BTDF
2050     layers, although interreflection between layers is not
2051     accounted for properly as it is in the WINDOW program.
2052 greg 1.267
2053     Added Jan Wienold et al.'s evalglare to distribution.
2054 greg 1.268
2055     Hopeful fix to deadlock issue under Mac OS X 10.10.x (Yosemite).
2056 greg 1.269
2057     Fixed early exit of rcontrib with internal error (sample behind sender)
2058     discovered by Rob G.
2059 greg 1.270
2060     =================================
2061 greg 1.301 Version 5.1 (Released 8/17/2017)
2062 greg 1.271
2063     Fixed issue with vchars.mta and symbols.mta not being installed in
2064     the appropriate metafile library location, with help from Rob G.
2065 greg 1.272
2066     Added ability to give quoted strings to output= directive in rfluxmtx.
2067 greg 1.273
2068     ****** COMPATIBILITY CHANGE ********
2069     Added ability to digest color (CIE-XYZ) input in pabopto2bsdf.
2070     This change alters the .sir (interpolant) format, so these files
2071     will need to be regenerated. Use the new "#colorimetry: CIE-XYZ" tag
2072     to enable on input.
2073 greg 1.274
2074     Rewrote bsdf2klems to support tristimulus color and call wrapBSDF.
2075 greg 1.275 Did the same for bsdf2ttree. Function specifications still gray only.
2076 greg 1.276
2077     Reduced a problem where rvu or rholo would be slow to quit when
2078     run with many processes on a large model or one with a large
2079     ambient file (taking lots of memory). We were waiting for
2080     processes to quit one-by-one, which takes some time for each
2081     process as it disentangles its shared memory. We now
2082     wait for all the processes together, so they can disentangle
2083     in parallel. It can still take up to a minute in some cases,
2084     but not 10 minutes like it was taking before the fix.
2085 greg 1.277
2086     Enabled ambient cache value corral for all levels, not just final two.
2087     This may reduce errors in certain pathological scenes.
2088 greg 1.278
2089     Added -in option to rcalc, rlam, and total to limit the number of
2090     input records in hopes of circumventing Windows EOF issues on binary data.
2091     Also added -on option to rcalc and total for logical symmetry.
2092 greg 1.279
2093     Increased modifier limit to 10,000 in rcontrib.
2094    
2095     Fixed issues with glrad and added zoom response to mouse wheel input.
2096 greg 1.280
2097     Added missing definition of "ashik2" material type to reference manual.
2098 greg 1.281
2099     Changed genBSDF to calculate device thickness assuming Zmax==0 so
2100     pkgBSDF will generate correct proxy geometry.
2101 greg 1.282
2102     Created pabopto2xyz tool to combine different sensor measurements
2103     into a single CIE-XYZ measurement file for color BSDF interpolation.
2104 greg 1.283
2105     Jan Wienold updated evalglare to version 1.30
2106    
2107     Roland Schregle added out-of-core photon mapping routines, which
2108     may be compiled using the PMAP_OOC macro.
2109 greg 1.284
2110     Added -a option to getinfo for easy addition of header lines.
2111 greg 1.285
2112     Fixed issue with multiple records on picture output in rcontrib (and rfluxmtx).
2113     Credit to Sarith Subramaniam for pointing out the problem.
2114 greg 1.286
2115     Made mkillum more tolerant of non-planar polygons in its sampling routines.
2116 greg 1.287
2117     Added "-recover" option to genBSDF to pick up where it left off.
2118 greg 1.288
2119     Fixed genBSDF issue that was created incorrect normalization of
2120     Klems output. Thanks to David G-M and Christian Knoflach for
2121     discovering the error. Also improved sampling of indirect irradiance
2122     that showed some slight bias due to poor sample collision avoidance.
2123 greg 1.289
2124     Fixed long-standing issue with -aa 0 neglecting textures in calculating
2125     surface shading.
2126 greg 1.290
2127     Fixed bug in ranimove introduced during photon map integration.
2128 greg 1.291
2129     Added check for steep sections of BSDF in pabopto2bsdf, creating narrower
2130     peakes in those places and mitigating some normalization issues.
2131 greg 1.292
2132     Added view360stereo.cal by Mark Stock to handle 360-degree over/under
2133     stereo views.
2134 greg 1.293
2135     Added MAX2SHADE macro to place limit on number of light sources
2136     to precheck for obstructions. (Currently set to 200.) This
2137     avoids excessive start-up times for scenes with many light sources.
2138     Thanks to Axel Jacobs for pointing out the problem.
2139 greg 1.294
2140     Added -v option to obj2mesh to print out mesh statistics.
2141 greg 1.295
2142     Rewrote bsdf2rad from ground up and made it a standard part of build.
2143 greg 1.296
2144     Fixed bug in orientation of Reinhart/Tregenza sample generator in rfluxmtx.
2145 greg 1.297
2146     Added ability to perform shadow-testing through unproxied BSDFs with strong
2147     through (direct-direct) component.
2148 greg 1.298
2149 greg 1.299 Added {+|-}a options to genBSDF and bsdf2ttree for switching off reciprocity
2150     averaging.
2151    
2152     Added bias to see through BTDFs with a strong "through" component
2153     rather than scattering view rays. This is in lieu of peak extraction,
2154     which looked to be too difficult from an implementation standpoint.
2155 greg 1.300
2156     Added bsdfview tool analogous to objview but for BSDF files (XML and SIR),
2157     which calls bsdf2rad then rad with a few useful default views.
2158 greg 1.302
2159     =========================
2160 greg 1.326 Version 5.2 (Release October 8, 2018)
2161 greg 1.302
2162     Created psketch program to apply non-photorealistic rendering to selected
2163     objects, identified by modifier name(s).
2164 greg 1.303
2165     Added '*' and '/' operations to rmtxop for element-wise multiplication and
2166     division of same-sized matrices.
2167 greg 1.304
2168     Changed falsecolor so "-s" option is adjusted to match legend if one.
2169 greg 1.305
2170 greg 1.310 Falsecolor legend changes and improvements by David G-M and Stephen W.
2171 greg 1.306
2172     Fixed bug in peak extraction code that generated
2173     "Bad call to SDqueryTreProjSA" error, reported by Lars Grobe.
2174 greg 1.307
2175     Increased maximum luminance to 10^7 in pcond to fix issue noticed
2176     by Axel Jacobs where veiling glare not added for the sun under
2177     some conditions.
2178 greg 1.308
2179     Increased maximum number of open files in rcontrib to the system upper
2180 greg 1.310 limit of 2048 rather than the default 512 under Windows.
2181 greg 1.309
2182     Added top-level resources directory with files from Rob Guglielmetti.
2183 greg 1.310
2184     Improved accuracy for peaky BSDFs and small light sources.
2185    
2186     Fixed issue with pmapdump noted by Axel Jacobs.
2187 greg 1.311
2188     Improved accuracy of bsdf2ttree when converting scattering interpolation
2189     representatons with strong peaks.
2190    
2191     Tweaked peak-extraction code to work more reliably.
2192 greg 1.312
2193     Georg Mischler updated SCons build system.
2194    
2195     Rob Guglielmetti and Alex Swindler updated CMake build system.
2196 greg 1.313
2197     Modified pcomb so the first view seen in the inputs is written into header.
2198 greg 1.314
2199 greg 1.316 Wrote rtpict script to run rtrace in parallel mode and simulate rpict with
2200     -n option.
2201 greg 1.315
2202 greg 1.316 Added ability to move forwards/backwards specified distance in rvu "origin"
2203     command. Feature requested by John Mardaljevic, who essentially owns this
2204     command, now.
2205    
2206     Reduced bias in ambient super-sampling method.
2207 greg 1.315
2208 greg 1.317 Fixed bugs associated with zero transmission in chromatic tensor trees.
2209     Thanks to Lars Grobe for pointing out issues.
2210 greg 1.318
2211     Added RAYPATH searching for -f options to genrev, gensurf, genworm,
2212     bsdf2klems, bsdf2ttree, and pcomb. This makes behavior consistent
2213     with rcalc, calc, and rendering tools.
2214 greg 1.319
2215     Worked with Randolph Fritz to fix some issues with ies2rad and newer
2216     IESNA63 standards.
2217    
2218     Resurrected original bsdf2rad test program, renaming it bsdf2rado. Still an
2219     optional build in src/cv/.
2220 greg 1.320
2221     Fixed bug in rcontrib with virtual sources, where pretest was adding
2222     to modifier accumulation buffers. Reported by Mostapha.
2223 greg 1.321
2224 greg 1.322 Added an "aBSDF" material type that explicitly checks for peak extraction.
2225 greg 1.321 Its arguments are the same as the original "BSDF" type, but without the
2226     thickness parameter, as proxy geometry is not supported by this new type.
2227     The old "BSDF" type no longer does peak extraction under any circumstances,
2228     since this behavior is superfluous for proxied geometry.
2229 greg 1.323
2230     Added -r option to bsdf2rad (and bsdfview) to fix BSDF min and max range
2231     for comparing BSDFs.
2232 greg 1.324
2233     Fixed issue with pfilt -m option and uneven image size changes pointed
2234     out by Rob Shakespeare.
2235 greg 1.325
2236     Updates to evalglare and gendaylit from Jan Wienold, including new
2237     colored sky option.
2238 greg 1.327
2239     =========================
2240 greg 1.375 Version 5.3 (Released September 1, 2020)
2241 greg 1.328
2242     Created radcompare program to compare Radiance tool output to reference outputs
2243     during unit-testing.
2244 greg 1.329
2245     Fixed issue reading very large files (> 2 GBytes) in rcollate.
2246 greg 1.330
2247     Made picking function in rvu ignore transparent and void surfaces.
2248 greg 1.331
2249     Added -orRxX options to rtrace to enable output of mirrored and unmirrored
2250     contributions and distances to enable new types of reprojections. This also
2251     cleaned up and unified handling of effective ray lengths throughout code.
2252 greg 1.332
2253     Bug fixes from Jan Wienold for evalglare.
2254 greg 1.333
2255     Changed indexed (numbered) output from dctimestep to start from 0 rather
2256     than 1, to make it more consistent with expected input naming.
2257 greg 1.334
2258     Increased default sampling in bsdf2klems (-n option) to 1024.
2259 greg 1.335
2260     Fixed an issue noticed by David G-M that was causing genBSDF to bias
2261     isotropic tensor tree samples resulting in subsequent failure of
2262     peak extraction with "aBSDF" type.
2263 greg 1.336
2264     Introduced max() and min() functions to .cal library.
2265 greg 1.337
2266     Added random incident patch sampling to bsdf2klems to improve accuracy
2267     with scattering interpolation representation input (e.g., from
2268     pabopto2bsdf). The other input types already sampled incident patch area.
2269 greg 1.338
2270     Added gendaymtx -A option to compute average sky over all the input
2271     time steps.
2272 greg 1.339
2273 greg 1.340 Added ability to output color image from rtrace with any of -ovrx options.
2274 greg 1.353 Also fixed inconsistency of -oN output when ray casting versus full trace.
2275     Before, it would flip normal to front side unless ray casting. Now, -oN
2276     always reports the unflipped normal.
2277 greg 1.341
2278     Changed rlam behavior so -iaN reads N lines from a stream rather than N
2279     characters. This seems more useful, since -ibN is somewhat redundant with
2280     the old behavior.
2281 greg 1.342
2282     Created rsplit program as compliment to rlam and to handle more complex
2283     rtrace output into separate files or streams.
2284 greg 1.343
2285     Improved getinfo so that it can also hop over resolution string with -c
2286 greg 1.353 and header elide mode. Use +d to include resolution string in output,
2287     and -d to elide with - and -c options.
2288 greg 1.344
2289 greg 1.345 Made pvalue -u option mean "uncompressed" with -r. Also, allow skipping
2290     bytes on standard input.
2291 greg 1.346
2292     Created rcode_depth tool to convert to and from a 16-bit/pixel portable
2293     depth image encoding that uses a mix of linear and reciprocal distance
2294     with explicit representations of 0 and infinity. Code for loading these
2295 greg 1.353 depth maps is in src/common/depthcodec.{h,c}.
2296 greg 1.347
2297 greg 1.348 Created rcode_norm tool to convert to and from 32-bit/pixel portable
2298 greg 1.347 surface normal representation, matching the one in src/common/dircode.c.
2299 greg 1.353 Code for loading normal maps is in src/common/normcodec.{h,c}.
2300 greg 1.348
2301     Created rcode_ident tool to create indexed identifier files.
2302 greg 1.353 Code for loading these files is in src/common/idmap.{h,c}.
2303 greg 1.349
2304     Added -o* option to rtpict to produce layered images that handle most
2305     output types from rtrace (colors, surface normals, distances, IDs).
2306 greg 1.350
2307     Created rcode2bmp script to create images from new rcode_* output maps.
2308 greg 1.351
2309     Improved efficiency of rmtxop in cases where matrix multiplication is
2310     faster evaluated right-to-left, as when the final component is a
2311 greg 1.352 column vector. Also added ability to apply trailing unary operators
2312     (-t, and -s or -c) to resulting matrix.
2313 greg 1.354
2314     Added new depth, normal, and ID file types to radcompare.
2315 greg 1.355
2316     Added BigEndian= header line for automatic byte-swapping in rmtxop
2317 greg 1.372 and radcompare.
2318 greg 1.356
2319     Added new "turbo" palette to falsecolor (thanks to Taoning).
2320 greg 1.357
2321     Nathaniel Jones created the "dcglare" program for annual glare
2322     simulations when the sun and sky are visible through the window.
2323 greg 1.358 Tutorial is posted at
2324     "https://github.com/nljones/Accelerad/wiki/The-Imageless-Method-for-Spatial-and-Annual-Glare-Analysis".
2325    
2326     Added support for loading RGBE images into matrices in dctimestep.
2327 greg 1.359
2328     Added -y option to gensky and gendaylit to support more accurate Michalsky
2329     solar position calculation.
2330    
2331 greg 1.372 Changed rsplit, so specifying a space as the separator parses words
2332 greg 1.359 between whitespace.
2333    
2334     Added ability of vwrays, pinterp, and pmblur2 to read encoded depth files.
2335 greg 1.360
2336     Added -o RxCxR1xC1 facility to perform blocking in rcollate.
2337 greg 1.361
2338     Made it so number of segments in genworm, genrev, and gensurf can be
2339     given as expressions of previously defined variables, etc.
2340 greg 1.362
2341     Added -D and -n option to gendaymtx to output sun description and skip
2342 greg 1.368 matrix output on request. A -M option was also added to output solar
2343     modifiers for rcontrib. Support also added for leap days in WEA input.
2344     Enhancements sponsored by Ladybug Tools.
2345 greg 1.363
2346     Updated eplus_uvf to work with IDF version 9.x, checking version number.
2347 greg 1.364
2348     Fix to glarendx issues with dgi calculation.
2349 greg 1.365
2350     Made it so rmtxop and dctimestep undo any exposure applied to Radiance
2351     pictures they may load.
2352 greg 1.366
2353 greg 1.372 Added robjutil utility to manipulate Wavefront .OBJ files.
2354 greg 1.367
2355     Fixed a crash related to rtrace -om or -oM with mesh instances containing
2356     materials.
2357    
2358     Improved rtrace flushing function to handle any value for -x without
2359     deadlock on controlling process.
2360    
2361     Eliminated unnecessary start-up procedures for rtrace when only ray-casting
2362     is needed (i.e., no tracing or value output).
2363 greg 1.369
2364     Improved isotropic sampling method in bsdf2ttree using "zipper" approach
2365     applied in genBSDF.
2366 greg 1.370
2367     Added limit to memory used by high-resolution tensor tree BSDFs for
2368     cumulative cache during MC sampling (rendering). Limit set to 250MBytes
2369     per BSDF for standard architectures.
2370 greg 1.371
2371     Added -n and -s options to bsdf2ttree to provide some user control
2372     over super-sampling.
2373 greg 1.372
2374     Improved surface normal codec used by ambient file to store orthonormal
2375     directions exactly.
2376    
2377     Improved peak extraction method, which was undervaluing transmission
2378     in many cases.
2379 greg 1.373
2380     New version of evalglare from Jan Wienold.
2381 greg 1.374
2382     Added -u option to gendaymtx to elide data columns (time steps) when
2383     the sun is not visible above the horizon.
2384 greg 1.375
2385     =========================
2386     Version 5.4
2387 greg 1.376
2388     Added rcollate -c option to force operation to continue even if it
2389     seems unnecessary. Made tool more robust.
2390 greg 1.377
2391     Added -t option to rcontrib (and rfluxmtx) to report progress after the
2392     given number of seconds.
2393 greg 1.378
2394     Added "test" target to makeall to run unit tests.
2395 greg 1.379
2396     Modified bsdf2ttree to allow different parameters per input SIR file.
2397 greg 1.380
2398 greg 1.381 Fixed issues with very large matrix files (> 2GB) in dctimestep, rmtxop,
2399     and rcollate.
2400    
2401     Added -rf and -rb options to rmtxop to load front or back reflectance
2402     matrix data from XML file rather than transmission. (Lars Grobe suggested.)
2403 greg 1.382
2404     Improved behavior for coincident surfaces with different materials.
2405     Rather than returning one surface or the other based on floating-point
2406     vagaries, opaque materials are now preferred over transparent ones.
2407     If the materials are both transparent or both opaque, then whichever
2408     surface appeared later in the scene description will be selected.
2409     This came of a request for consistent behavior with legal CAD output
2410     from Peter Apian-Bennewitz.
2411 greg 1.383
2412     Added explicit tests for on-edge intersections with polygons. This should
2413     eliminate stray rays and tiny light leaks that often appear even in
2414     well-constructed geometry.
2415 greg 1.384
2416     Added "-s up" option to pabopto2bsdf to allow for 180 degree symmetry,
2417     meaning that data repeats after 180 degree rotation (as distinguished
2418 greg 1.385 from "-s bilateral" whose data is mirrored about a vertical plane).
2419     Thanks to Helen Rose Wilson for the suggestion and informing me that
2420     such a thing exists.
2421 greg 1.386
2422     Removed upper limit on number of modifiers in rcontrib.
2423 greg 1.387
2424     Put cap on maximum ambient gradient to avoid over-extrapolation of
2425     poorly computed irradiance cache values.
2426 greg 1.388
2427     Added robjutil +T option to triangulate all faces in .OBJ description.
2428 greg 1.389
2429     Altered BSDF library to have both front and back diffuse transmittance
2430     values, which can be different. This was necessary to avoid issues
2431     caused by measurement and modeling discrepancies.
2432 greg 1.390
2433     Added pabopto2bsdf -g option to cull near-grazing scattering to avoid
2434     issues with noise and negative values.
2435 greg 1.391
2436     Increased default dynamic range from 32 to 100 in pcond and normtiff.
2437 greg 1.392
2438     Added -o and -n options to genbox to create .OBJ output and segment
2439 greg 1.393 edges and corners for transparent materials. Also added -s option
2440     to control smoothing for .OBJ and Radiance with segmented rounding.
2441    
2442     Made it so robjutil with the +r option for Radiance output now
2443     produces normal smoothing unless normals are removed with -n.
2444 greg 1.394
2445     Added exposure preservation to pcompos when possible (i.e., when
2446     there is only one input or inputs agree on exposure).
2447 greg 1.395
2448     Added -DSHARP_RGB compile-time option to use sharp RGB color space
2449     rather than historic default. This can make for more accurate color
2450     calculations, but requires that materials be recalibrated. The
2451     PRIMARIES= line is also produced on output from rpict or rvu with
2452     the correct set of primaries based on how the system was compiled.
2453    
2454     Added automatic flushing to the output of total, except when the -r
2455     (running subtotals) option is used.
2456 greg 1.396
2457     Improved behavior of little-used -aw option, so that it avoids sea-level
2458     rise caused by adding its own estimate back into the ambient level remainder.
2459     It ended up being simple enough to derate the final average by the factor
2460     corresponding to average surface absorpition, thus removing the average
2461     from the final bounce estimate.
2462 greg 1.397
2463     Introduced ies2rad upgrades by Randolph Fritz. Randolph says it
2464     fixes the following problems:
2465    
2466     1. Generates correct Radiance geometry for spheres in 1995, 2002,
2467     and 2019 IES files.
2468    
2469     2. Generates correct Radiance geometry for vertical cylinders that
2470     are taller than they are wide.
2471    
2472     3. Ignores the file source ("File Generation Type") field in the
2473     2019 version of the file, which would otherwise be incorrectly used
2474     as an output multiplier.
2475    
2476     It also offers the following enhancements:
2477    
2478     1. Shape information is included in the .rad file comments.
2479    
2480     2. 1995, 2002, and 2019-version luminous opening geometry is
2481     accounted for.
2482    
2483     3. The 2002 and 2019 IES file versions are recognized and
2484     processed appropriately.
2485    
2486     4. I have made an attempt to do something intelligent with less
2487     common "luminous opening" shapes in the 1995, 2002, and 2019 versions
2488     of the standard, though I have not implemented any support for new
2489     geometry; approximations are substituted and warning messages issued.
2490     Unfortunately, this code is not tested, since I don't have any IES
2491     files that use these shapes.
2492 greg 1.398
2493     Added support for depth-of-field blurring in vwrays using -pd option.
2494     Also, made -c count work with vwrays -i, producing multiple samples
2495     per indicated pixel position. At the same time, support for the -pd
2496     option was added to rtpict, which calls on vwrays for its samples.
2497 greg 1.399
2498     Fixed issue with BSDFs that didn't obey reciprocity, where direct
2499     sampling wasn't following exactly with indirect sampling. This was
2500     discovered and reported by Jon Sargent.
2501 greg 1.400
2502     Created checkBSDF tool to test XML BSDF reciprocity and perform similar
2503     sanity checks.
2504 greg 1.401
2505     Added -O option to pvalue and pextrem to report watts/sr/m^2 even if
2506     picture is XYZE.
2507 greg 1.402
2508     Made subtle changes to header i/o routines to preserve alignment in
2509     binary file formats to enable memory-mapping. Implemented memory-mapped
2510     matrix loading in rmtxop for binary double files.
2511 greg 1.403
2512     Removed ambient value sorting, which was written when ambient caches
2513     could overwhelm available memory. This is rarely the case these days,
2514     and the added code complexity and updating of cache values with LRU
2515     counts dirties pages that would otherwise remain clean, so it was
2516     often a loss even when VM was an issue.
2517 greg 1.404
2518     Added iso2klems script to compute a Klems BSDF based on specular
2519     and diffuse measurements as a function of incident angle.
2520 greg 1.405
2521     Fixed issue with over-counting diffuse component during aBSDF
2522     peak extraction.
2523 greg 1.406
2524     Added dctimestep -x and -y options to specify image dimensions
2525     for multiple outputs corresponding to result vectors.
2526 greg 1.407
2527     Added -P option to rcalc to pass formatted input when cond is <= 0.
2528 greg 1.408
2529     Created rcrop utility for cropping matrices and pictures more
2530     conveniently, correcting view information. Expect it to be handy
2531     for extracting rows and columns from matrices, mostly.
2532 greg 1.409
2533     Changed pcomb so -o option elides original exposure values
2534     from indented source headers.
2535 greg 1.410
2536     Added getinfo -r option, which is similar to -a except it will
2537     replace indicated lines with new ones.
2538 greg 1.411
2539     Slight change to vwrays -d option to not spit out "-ld-", and to
2540     produce "-ld+" without requiring input picture as argument.
2541 greg 1.412
2542     Added automatic overture calculation to rtpict with -n > 1 if
2543 greg 1.413 ambient cache is on and file is named. If straight image output
2544     is requested, we randomize all samples and avoid cache collisions.
2545 greg 1.414
2546     Added cnt -s option to shuffle output.
2547 greg 1.415
2548     Fixed issue with divide-by-zero errors in the ambient super-sampling
2549     routine discovered by Jon Sargent of Solemma. This affected regions
2550     that had zero radiance, such as black backgrounds or unlit areas
2551     with -av 0 0 0, when super-sampling was effectively disabled, causing
2552     some loss in accuracy of the results.
2553 greg 1.416
2554     Updated Klems Half- and Quarter-bases to match angles currently used
2555     in WINDOW.
2556 greg 1.417
2557     Eliminated most aiming failures for triangular light sources, at the
2558     expense of conservative sampling near the centroid. Thanks to
2559     David Geisler-Moroder for his help on this.
2560 greg 1.418
2561     Increased maximum set size to 8191 to avoid set overflow errors.
2562 greg 1.419
2563     Added source obstruction test to statistics being kept on which
2564     sources were visible in adaptive shadow testing code. Previous
2565     behavior was likely over-estimating source contributions.
2566 greg 1.420
2567     Added diffuse components into maximum directional hemispherical
2568     reported by checkBSDF, so comparing to 100% is easier for each
2569     component.
2570    
2571     Fixed incorrect calculations in iso2klems script, thanks to
2572     help from Jacob Jonnson.