ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
Revision: 1.148
Committed: Wed Apr 30 21:11:35 2008 UTC (16 years, 2 months ago) by greg
Branch: MAIN
CVS Tags: rad3R9
Changes since 1.147: +0 -3 lines
Log Message:
Correction to Window 6 notes

File Contents

# Content
1 =========================
2 Version 1.2 (Released 3/9/90)
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:
12 pfilt -x 512 -y 400 -p 1
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.
19 View shift and lift options were added to the list of standard view
20 parameters, for specifying views for panoramas and holograms.
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).
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.
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.
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.
45 =========================
46 Version 1.3 (Released 10/22/90)
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.
54 Added rview driver for NeWS for Sun and Silicon Graphics workstations.
55 This work was done by Isaac Kwo.
57 Fixed oconv for scenes with many overlapping instances (runs faster now).
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...
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.
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.
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.
76 Wrote xshowtrace, a fun program for watching rays as they are being
77 traced on an X11 display.
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.
84 Added routines for performing 24-bit gamma correction in integer domain,
85 making programs like ra_pr24 and ra_t16 run faster.
87 =========================
88 Version 1.4 (Released early 1991?)
90 Fixed bug in IES translator that resulted in the incorrect
91 interpretation of type B photometric data. (1.3.1)
93 Added types for using BRDF data: plasfunc, metfunc, plasdata and metdata.
95 Added interpretation of source color to ies2rad and color corrective
96 filtering to pfilt. Reference file used by both is "" in
97 library directory.
99 Added picture flipping program, pflip, and pattern preprocessing script,
100 normpat.csh, to the px directory.
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.
106 Added -m option to xform to change modifiers for surfaces.
108 Wrote replmarks program to replace markers in a Radiance scene file
109 for light sources or other objects.
111 Added global compilation script, makeall.
113 Fixed calculation of luminance in display programs and gensky to use
114 white light assumption.
116 Added options and features to pcomb.
118 Added FORMAT= line to all Radiance file headers for improved error
119 checking and clarity.
121 Added icon bitmaps for rview and x11image under X11 and fixed a bug
122 that caused x11image to ignore keyboard input.
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.
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.
133 =========================
134 Version 2.0 (Released 11/26/91)
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.
141 Changed icon for x11image (renamed ximage) to miniature bitmap of
142 picture.
144 Fixed bug in xshowtrace that prevented it from working with twm.
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.
151 Added -g (gamma correction) option to pvalue.
153 Added the more general BRTDfunc for procedural definition of bidirectional
154 reflectance-transmittance distribution functions. Also added transfunc
155 and transdata types.
157 Changed trans types to modify the color of the transmitted specular
158 component.
160 Fixed a bug in ra_t16 introduced in the last change which caused
161 problems for the (default) 16-bit output mode.
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.
167 Wrote falsecolor program to transform images to false color with
168 value labels.
170 Modified pcomb to allow different output sizes and access to local
171 pixel neighborhood for specialty filtering applications.
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.
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.
185 Added -a and -l options to pcompos and made both pcompos and pcomb
186 read from commands as well as files.
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.
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.
198 Put many of the routines into a common library.
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.
204 Fixed long-standing bug in text routines which caused slanted text
205 to slant the wrong way!
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.
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.
219 Wrote ra_tiff program, using Sam Leffler's libtiff package to read
220 and write 24-bit TIFF images.
222 Wrote ra_ppm program to convert to and from Poskanzer Pixmaps.
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.
230 Defined U and V parameters in for more convenient (and
231 sloppy) use of 2-dimensional textures and patterns on planar surfaces.
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.
237 Added version reporting to rpict, rtrace and rview. Use standalone
238 -version option.
240 Changed to quincunx initial sampling pattern in rpict. This should
241 reduce artifacts from adaptive image sampling at no added cost.
243 Added -rgb option to ra_pr24 to produce RT_FORMAT_RGB files.
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).
252 Added -I option to xform to invert surfaces.
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.
259 Made the programs more forgiving of machine differences on octrees.
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:
274 alias pfixabs '( echo EXPOSURE=.381 ; cat \!:1 ) > \!:1.$$ ; mv \!:1.$$ \!:1'
276 Improved accuracy of glass material type and added option for
277 user-supplied index of refraction.
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.
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.
288 ==========================
289 Version 2.1 (Released 5/20/92)
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.
297 Added makeall option for NeXT machine and changed code to suit.
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.
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.
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.
313 Corrected irradiance gradient calculation. New formula predicts
314 gradient better and thus reduces artifacts in indirect calculation.
316 Modified replmarks to accept multiple markers.
318 Added -aI and -aE options to read ambient include/exclude materials
319 from a file.
321 Reduced effect of light leaks during interreflection calculation.
323 Added -ang option to gensky for giving solar angles explicitly.
325 Added ability of "view" command within rview to accept view options.
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%).
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!
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!)
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.
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.
351 Added -H and -R options to pvalue to control resolution strings
352 and color ordering.
354 Fixed byte ordering for 24-bit color displays in ximage.
356 ==========================
357 Version 2.2 (No official release)
359 Made more fixes in rview and ximage for different display hardware.
360 Philip Thompson and Peter Apian helped with suggestions and testing.
362 Fixed bug in -e option of xform that kept it from fully expanding
363 some scene files.
365 Added proportional text spacing (-s option for psign, new argument
366 for text primitives). Added antialiasing (3x3 super-sampling) to psign.
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.
372 Added CC defines to all the Rmakefiles so that other C compilers may be
373 used consistently.
375 Added -x and -y options to psign to control output dimensions directly.
377 Decreased value of FTINY with SMLFLT option once again in an attempt to
378 further reduce errors.
380 Reinstated rtrace's capability to produce 32-bit_rle_rgbe directly.
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.
386 Added ra_ps program to translate Radiance picture into PostScript file.
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.
396 Created rpiece program for parallel rendering of a single image on
397 multiple processors and workstations.
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.
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.
407 Fixed bug in spotlight sources that caused incorrect boundaries to be
408 cast by mirrors.
410 Fixed rounding of scanlines in ra_pr24 to 16-bit boundaries.
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.
416 Added -r option to gensky for the direct specification of solar
417 brightness.
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).
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.
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.
433 Modified colordata and colorpict to take functions of a single variable
434 instead of always requiring functions of three variables (red, green, blue).
436 Modified objview script to work in original object coordinates.
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.
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.
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.
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.)
457 Fixed error in ies2rad.c and that caused incorrect
458 interpretation of asymmetric Type C (A) fixture photometry. Note the
459 new definition of src_phi in This change may affect
460 manually entered photometry.
462 Added '@' command to ximage to adjust exposure based on Blackwell's
463 model of human contrast sensitivity.
465 Added functions to pcomb to get the ray origin and direction from the
466 input picture view specifications.
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.
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/
480 Added -ti, -te, -tI and -tE options to rtrace for including or
481 excluding surfaces from those reported by the trace output specifier.
483 Fixed long-standing bug in pfilt gaussian filter option, which caused
484 the image to be excessively defocused.
486 Added -m option to pfilt for image sample smoothing. This helps get rid
487 of some of the "speckle" associated with specular sampling.
489 Made -ovt* compatible with -I option of rtrace.
491 Changed ximage to work with multiple pictures. It now opens one window
492 for each picture file.
494 Fixed error reporting in rpict for most machines. (Many thanks to Peter
495 Apian-Bennewitz for his help and suggestions.)
497 ****** COMPATIBILITY CHANGE ********
498 Added intermediate sky to gensky and changed its options slightly.
499 The new gensky uses a new version of, 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.)
503 ==========================
504 Version 2.3 (Released 11/16/93)
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.
509 ==========================
510 Version 2.4 (Released 4/20/94)
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.
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.
522 Added =SS option to pcompos to allow anchor points for image positions
523 other than the lower left corner.
525 Wrote raddepend script for finding dependencies in scene files.
527 Fixed a bug in mkillum that caused it to incorrectly sample ring sources.
529 Finally allowed mixtures to work with materials, thanks to the encouragement
530 and advice of Peter Apian-Bennewitz.
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).
536 Added initial "#?RADIANCE" line to headers to simplify Radiance file
537 identification by programs used to magic numbers.
539 Created a translator for Wavefront .obj files, called obj2rad. It uses
540 the same type of mapping rules as arch2rad.
542 =============================
543 Version 2.5 (Released 6/26/95)
545 Wrote translators to and from the new MGF (Materials and Geometry
546 Format) specification.
548 Changed color conversion routines to make light source colors (from
549 consistent with uniform white light standard.
551 Fixed a bug that caused very small local sources not to be sampled
552 at all!
554 Added the ability for rview to read commands from its standard input
555 under X11.
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!
562 Added -t (touch) option to rad, to make it easier to deal with minor
563 changes to input files.
565 Created graphical user interface to rad, called trad. Based on Tcl/Tk,
566 this should finally get people to start using this program!
568 Added -vo and -va (view fore and view aft) clipping plane options to
569 Radiance view parameters.
571 Added -bv option for (opaque) back face visibility control.
573 Added -q, -a and -e options to pinterp, and made it faster. (These
574 should be big improvements.)
576 Created tabfunc program for converting data tables to functional
577 language.
579 Wrote mgf2meta program to convert MGF data to line drawing.
581 Updated ies2rad program to interpret MGF geometry in IESNA-LM-63-1995
582 files.
584 Added sorting of ambient values according to access times to improve
585 reference locality for better virtual memory performance.
587 Added source solid angle argument to BRTD functions for averaging
588 values.
590 Wrote genclock program to create an analog clock.
592 Fixed a bug for bitmaps using hexbit4x1.fnt with brighttext, which
593 caused thin lines to appear.
595 =============================
596 Version 3.0 (Released 6/19/96)
598 Added comments to data and font files.
600 Changed behavior of mirror to allow void alternate material.
602 Added cylindrical view type for Quicktime VR authoring and other
603 interesting applications.
605 Increased default rtrace parameters for more accurate calculations when
606 options are not specified.
608 Added RAWFILE and ZFILE variables to rad for saving raw picture file and
609 Z (distance) information from rpict.
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.
614 Added -B option to pinterp to blur multiple views into a single image,
615 useful for motion blur and depth of field simulation.
617 Created pdfblur script and modified vwright to automate depth-of-field
618 simulation with pinterp.
620 Added -c option for color PostScript output from ra_ps, and made both
621 this program and psmeta produce EPS-compatible files.
623 Created macbethcal program for calibrating color image scanners and
624 film recorders or printers using the Macbeth ColorChecker chart.
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.
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.)
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.
641 Added -T option to rpiece to limit execution time.
643 Fixed bug in mixtext type introduced in last release -- caused improper
644 calculation of mixed modifiers.
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.
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.
656 Created pmblur script to generate views for camera motion blur in
657 walk-through animations.
659 Added "inpic" variable to for determining when the edge
660 of a non-repeating image has been reached. Use with mixfunc primitive.
662 Created ranimate program to control walk-through and dynamic animations
663 on multiple hosts.
665 Fixed problem with antimatter type referring to final definition of
666 material names. Now, it uses the most recent ones.
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.
671 Fixed bug in pfilt -m option that caused floating point exceptions on
672 Alphas.
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.)
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.
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.
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!)
693 Added corner rounding to genprism command (-r option).
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.
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.
711 =============================
712 Version 3.1 (Released 7/24/97)
714 Changed gensky so it will accept hour specifications as HH:MM, with
715 designations for standard North American and European time zones.
717 Increased buffer size for in-line commands from 512 to 1024.
719 Added T(n), S(n), WE and pa(n) functions and constants to pcomb.
721 Created histo utility to compute 1-dimensional histograms from data files.
723 Created pacuity, pveil and psquish scripts (later combined in "pcond"):
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/ (See the header comments therein.)
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.
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.
752 Created pcond program, which combines pacuity, pveil and psquish in a
753 more efficient, robust package. (See man page for details.)
755 Renamed Perlin noise function partial functions, noise3a(), noise3b()
756 and noise3c() to noise3x(), noise3y() and noise3z(). Added backward
757 compatibility defines to so nothing should be broken.
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).
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.
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.
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).
777 ==============================
778 Version 3.4 (Released 1/28/02)
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.)
783 Fixed bug in xform handling mist's with > 5 real arguments.
784 (Included in 3.1.1.)
786 Fixed bug in mist handling routines that caused some incorrect calculations
787 for distant sources. (Included in 3.1.1.)
789 Added ability for lam utility to read from commands.
791 Created vwrays command to compute ray origins and directions for specified
792 views or pictures.
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.
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.)
802 Fixed bug in rpiece that caused the -pa option to fail. (Included in 3.1.2.)
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.)
808 Fixed bug in trad which caused it to fail when there were tabs in the input.
809 (Included in 3.1.3.)
811 Fixed bug in pcond that caused it to white-out borders of some fisheye views.
812 (Included in 3.1.3.)
814 Added facility to ra_tiff to read and write new LogLuv high dynamic-range
815 image formats.
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.)
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.
825 Fixed compiles for AIX -- select() incompatibility and macro conflicts.
826 (Included in 3.1.6.)
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!
831 Fixed error in viewloc() for computing view locations for cylindrical views.
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.
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.
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.
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.)
848 Modified ranimate to change directories before running transfer or archive
849 commands.
851 Added -pm option to rpict to perform jittered motion blurring.
853 Created phisto script and added -I option to pcond for computing
854 multiple, identical exposures.
856 Fixed time zone specifications in gensky. (Added as patch to 3.1.9.)
858 Fixed bug in mixture functions that caused erroneous modifier loops.
859 (Added as patch to 3.1.10.)
861 Wrote glrad program for interactive display of Radiance scenes using OpenGL.
862 Modified objview program to use rad and glrad for rendering.
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.
868 Fixed problem with dielectric materials with textures where rays that should
869 have penetrated or reflected do the opposite.
871 Created ra_hexbit program to generate bitmap files for use with hexbit4x1.fnt.
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.
880 Wrote normtiff program to quickly tone-map and convert Radiance pictures
881 and SGILOG-encoded TIFF's to flat RGB TIFF output.
883 Added -r option to protate for CCW rotations.
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.
890 Wrote rhinfo program for printing out holodeck section information.
892 Modified rad "scene" variable to allow in-line command specifications.
894 Added added -s and -b options to ra_ppm for changing output scale and
895 forcing greyscale output.
897 Now allow negative distances for the fore clipping plane in rpict.
898 This may be useful for rendering holographic stereograms.
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.
903 Added support for 15-bit TrueColor visuals in ximage.
905 Added (undocumented) -P option to macbethcal for picking chart corners
906 directly using ximage.
908 Added -r option to rholo for opening holodeck files read-only.
910 Added correction factor for solid angle change in dielectrics as
911 noted in Eric Veach's thesis.
913 Added von Kries white balance transform for color conversion using
914 CMCCAT2000 matrix.
916 Added CAPDATE field to rendering headers to record render date.
918 Added mixpict primitive for using pictures to generate mixtures.
920 Fixed bug in Type B photometry angle calculation in discovered
921 by Erich Phillips.
923 ==============================
924 Version 3.5 (Released 3/21/03)
926 Fixed bug in replmarks pointed out by Georg Mischler, which caused
927 garbage to be output under specific conditions (unscaled, unrotated
928 instances).
930 Fixed bug in normtiff that caused occassional weird colors
931 on human tone-mapping of 32-bit LogLuv inputs (tmapluv.c).
933 Fixed -o option of pcomb so it resets le(i) and color exposure functions
934 to unity.
936 Fixed a bug in Type B photometry in ies2rad introduced
937 in last fix where spherical sources were getting symmetric
938 distributions front-to-back.
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.
944 Added NORANDOM symbol for tests with all random sampling turned off.
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.
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.
955 --- All of the above was put into a 3.4.1 patch release 4/1/2002
957 Added a facility to gensurf to make holes in the mesh using a
958 valid(s,t) function.
960 Fixed bug in pcond that caused a bus error on images with large dark
961 regions when acuity switch was set.
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.)
967 Made rpict/rpiece/vwrays -vf option accept "-" as a synonym
968 for standard input.
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.
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.)
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.)
987 Improved the accuracy and appearance of indirect irradiance
988 interpolation for smoothed surfaces. (Thanks to Bernhard
989 Spanlang for noticing the problem.)
991 Fixed intolerance for carriage-returns in mkillum's input files,
992 which caused problems for files imported from DOS/Windows.
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.)
998 Improved movement in rholo for low-detail holodecks on fast
999 graphics processors by inserting 50 ms pause during motion
1000 feedback.
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!
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.)
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.
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.
1030 Increased scanline window in pcomb to 64 (+/- 32 pixels) to allow
1031 for larger kernels in filtered images.
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.
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 raypcalls.o module, also installed in src/lib, manages
1048 parallel rendering on multiprocessors with shared memories.
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.
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.
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.
1074 Fixed a bug in src/common/fgetline.c where it failed to elide
1075 carriage-returns in Windows files.
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.
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.
1098 Added -dw option to pvalue program to input and output
1099 16-bit word values (-dW for byte swapping).
1101 Changed call ordering in material shaders to ensure
1102 proper surface normal perturbation for two-sided,
1103 textured surfaces.
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.
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.
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.
1142 ==============================
1143 Version 3.6
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.
1149 Added -oc option to rtrace to output local (u,v) coordinates.
1151 Fixed bugs in local uv and j unit vector variables in src/rt/func.c.
1153 Added warning message to OpenGL rendering routines about new
1154 mesh primitive, which we cannot currently render.
1156 Added -if, -id, -of, and -od options to rcalc to provide for
1157 binary float and double i/o.
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.
1163 Fixed wrapping long in source hit test code, which would cause
1164 odd horizontal lines in some very long renderings.
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.)
1171 Added -N option to rad to start multiple rendering processes in
1172 parallel.
1174 Fixed bug where mesh instances were not being freed, so subsequent calls
1175 in programs like ranimove would refer to bogus data.
1177 Added support in normtiff for floating-point and 16-bit/sample TIFF input
1178 files.
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 modifiers before the light/illum/glow primitive and allows aliases
1184 as well.
1186 Fixed bug in xform where it was neglecting to add transform arguments
1187 to new mesh primitive.
1189 Added -dF and -dD options to pvalue for byte-swapped floats and
1190 doubles, respectively.
1192 Changed meta2tga to output correct colors.
1194 Changed local coordinate index from 32-bits to 16-bits, which requires
1195 that Radiance mesh files be recompiled. (Later decided against this
1196 change, as it caused problems with some models.)
1198 Changed integer tone-mapping routines to better deal with images
1199 containing large, constant regions.
1201 Improved interaction with rholo -o ogl driver under OS X, which was
1202 returning bad values from the depth buffer.
1204 Minor bug fix in ranimove where it was restarting processes when it
1205 didn't need to.
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.
1213 Fixed bug discovered by Marcus Jacobs where oconv was dumping core
1214 when it was given too many modifiers.
1216 Fixed problem with rpict where it was drawing illum sources badly
1217 even when they weren't all that small in the view.
1219 Added in(i) function to rcalc for more flexible channel evaluation.
1221 Replaced all calls to vfork() with regular fork() calls.
1223 Fixed bug in glarendx for dgr calculation with sources behind view.
1225 Added -p option to histo to print percentages/percentiles r.t. counts.
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.)
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
1243 Improved -f option of normpat, which caused odd color changes before.
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.
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.
1254 Added -I option to replmarks for mesh instancing.
1256 Made similar change for virtual sources to allow modifiers and aliases
1257 on the mirror and prism types to work properly.
1259 Rob Guglielmetti added -lw and -lh options to falsecolor to control the
1260 legend dimensions. Made it so -lw 0 and/or -lh 0 turns legend off.
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.
1265 Wrote ra_bmp program to convert to and from Windows BMP files (finally).
1266 It's the most horrible image format I've ever seen, and I've seen a lot.
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.
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.
1278 Added -l option to obj2mesh to search for material files in library
1279 locations.
1281 Increased polygon vertex limit to 512 in obj2mesh and obj2rad and added
1282 warning if this limit is exceeded.
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.
1288 Fixed long-standing bug in reported pixel ordering out of certain
1289 protate commands.
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.
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.
1299 Fixed problems with effective ray lengths computed for dielectric
1300 and BRTDfunc materials. This was most evident in breakup of holodeck
1301 views when VDISTANCE=True.
1303 Fixed rad so that 'scene' variable may consist only of inline commands.
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.
1309 Modified gensky behavior so if time is given with standard time zone
1310 designation, any -m option is ignored.
1312 Added -n option to mkillum for (shared memory) parallel processing.
1314 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.
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.
1331 Enabled the -p option for primary conversion without tone-mapping
1332 in ra_bmp. Also provides for XYZE input conversion to RGB.
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.
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.
1342 Fixed bug in rcalc where it sometimes wasn't parsing the input format
1343 correctly.
1345 =====================
1346 Version 3.7
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.)
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.)
1356 (The above were included in the 3.6.1 patch release.)
1358 Changed default temporary directory from /usr/tmp, which doesn't exist
1359 on a lot of systems these days, to /tmp.
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.
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.
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.
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.)
1385 Fixed inaccuracy in calculation of diffuse transmission in the presence
1386 of pure specular (Fresnel reflection) using "trans" material. Thanks
1387 to Christoph Reinhart for pointing out the error.
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.
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.
1397 Added DBLUR variable to ranimate and pmdblur script to handle simultaneous
1398 motion and depth-of-field blurring. Thanks to Visarc for funding this work.
1400 Added setting of focus distance in rvu ("focus" command) and rholo
1401 ('f'/"frame" command).
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.
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.)
1413 Fixed some minor problems and inconsistencies with 16-bit/channel
1414 TIFF i/o in ra_tiff.
1416 Created mksource program to generate distant sources for improved
1417 image-based lighting with light probes.
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).
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.
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).
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.
1443 Added -T option to xshowtrace to trace rays to light sources.
1445 Added meta2bmp program to produce BMP files from metafile graphics.
1447 Added cct_x(t) and cct_y(t) to src/cal/cal/ to interpolate
1448 CIE chromaticities for particular black-body temperatures.
1450 Increased maximum number of input pictures in pcomb and pcompos to 512.
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.
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.
1460 Implemented Russian roulette ray termination with -lr <= 0.
1461 Made -lr -10 the default in rtcontrib.
1463 Made rtcontrib -f option search RAYPATH directories.
1465 Made it so -o option of rtcontrib can pipe -o output to a command.
1467 Added -if and -of options to total for binary i/o (following rcalc mold).
1469 Switched default options in rtrace to use Russian roulette. (Rpict and rvu
1470 still use biased ray termination.)
1472 Added rtcontrib -r option to recover partial output.
1474 Added -u rendering option for pure Monte Carlo sampling.
1475 (Got rid of -DMC compile option, which this makes superfluous.)
1477 Changed -t option of rlam to accept strings as well as single characters.
1479 Fixed bug in rcalc with -l option where it would sometimes go into an
1480 infinite loop.
1482 Fixed truly ancient bug in bounding box computation for cones, which
1483 could (and did) cause missing segments.
1485 Added -z option to normtiff to output LZW-compressed files.
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.
1491 =====================
1492 Version 3.8
1494 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).
1498 Changed mksource to use 98th percentile (rather than 99th) for threshold.
1500 (Above changes included in 3.7.1 patch release.)
1502 Eliminated writing of EXPOSURE= line in ra_tiff -r when source TIFF
1503 does not have STONITS set.
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.
1509 Fixed bug in antimatter using Russian Roulette sampling.
1511 (Above changes included in 3.7.2 patch release 22 Aug 2005.)
1513 Created fieldcomb script to combine alternate fields in a rendering
1514 sequence. (Development generously sponsored by Iebele Abel.)
1516 Added missing preload of mesh objects for more efficient memory use
1517 during parallel rendering -- this was a serious oversight.
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.
1523 Eliminated SPEED macro from makeall and source tree.
1525 Added -pj option to vwrays to allow jittering of sample locations.
1527 Fixed bug in rtcontrib where it occasionally missed writing the
1528 final bin file. (Pretty serious, actually.)
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.)
1533 Rearranged struct's for better efficiency on 64-bit architectures.
1535 Added -i option to rlam so it works with binary input formats.
1537 Added rtcontrib -bn option to specify number of bins and fixed bug
1538 in recovery of files containing multiple values per record.
1540 Added rtcontrib -fo option to write over existing files, which it now
1541 refuses to do without this option.
1543 Made rtcontrib flush output when handed a zero-length ray vector,
1544 to match behavior of rtrace.
1546 Improved color scale for falsecolor output.
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.
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.
1555 Made xform, replmarks and rad2mgf handle quoted modifiers and names properly.
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.)
1561 Fixed bug in ra_ppm for 16-bit/sample i/o, where it was getting the byte
1562 order wrong (apparently).
1564 Added -V option to rtcontrib to report actual contributions, rather than
1565 just ray coefficients.
1567 Fixed bug in ranimate that caused it to fail in continuation of renderings.
1569 Renamed librt.a to librtrad.a, to avoid conflict on Solaris. Almost
1570 everything now gets linked to -lrtrad instead of -lrt.
1572 Fixed problem with large sample sets, so -u+ option now is truly random.
1573 Thanks to Rick Mistrick and Younju Yoon for identifying this problem,
1574 which was related to a poorly designed hash function.
1576 Changed -u+ to be the default setting in rtrace (only).
1578 Fixed binary i/o for rlam and vwrays under Windows.
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.
1585 Created optics2rad.csh script to convert from Optics 5 material output
1586 to something correct for Radiance. Built on old function,
1587 which is actually incorrect so removed from the distribution.
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.)
1593 Fixed long-standing inaccuracy of pcompos -t and +t thresholding options.
1595 Fixed bug in handling of views with tabs rather than spaces.
1597 Fixed bug related to alias of alias.
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.
1604 Added -o option to ra_xyze to produce original pixel values.
1606 Fixed bug in tracing of virtual sources, where intervening glazing was
1607 not being accounted for properly.
1609 Added -h option to pcompos and pcomb to eliminate verbose headers.
1611 =====================
1612 Version 3.9
1614 Added -spec option to falsecolor to restore original spectral color scale.
1615 Also added "-s auto" option to automatically set the maximum value.
1617 Added byte-swapping input and output to rcalc.
1619 Additional error-checking for source surfaces.
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 got lost in the slightly broken release process at the time. This
1625 should make a big difference in memory usage, especially for the
1626 new mesh primitive. (I measured 30% less memory usage.)
1628 Corrected ray weights for material mixtures.
1630 Reduced the default -n setting for obj2mesh to take better advantage
1631 of the smaller octree structure size.
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.
1637 Adding ability in mkillum to incorporate BSDF data in calculation.
1638 Internal interface (raypcalls) now used in place of rtrace process(es).
1640 Fixed pixel alignment in pcomb for size reduction and enlargement.
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.
1645 Added -c option to rtcontrib to facilitate cumulative calculations.
1647 ****** COMPATIBILITY CHANGE ********
1648 Fixed long-standing bug in, 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.
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.
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.
1661 Added "planisphere" (stereographic) fisheye view type for traditional
1662 daylighting analysis. Feature requested & explained by Axel Jacobs.
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).