========================= Version 1.2 Added a -p option to rpict and pfilt to set the pixel aspect ratio for output. Instead of giving the absolute x and y resolutions, the user now gives rpict and pfilt the maximum desired resolution for x and y and the pixel aspect ratio is used along with the given view to calculate appropriate values within this boundary. This makes for much more natural view specifications. For example, for a 512x400 device with a pixel aspect ratio of 1.0, the pfilt command: pfilt -x 512 -y 400 -p 1 will always produce the appropriate output, regardless of the aspect ratio of the input picture. If necessary, the x or y output resolution will be reduced to accommodate the device's resolution. A square image would occupy a region of 400x400 pixels. View shift and lift options were added to the list of standard view parameters, for specifying views for panoramas and holograms. Rview no longer takes options for x and y resolution, but instead gets them from the device driver along with the pixel ratio. This makes it much easier to change the view aspect ratio (with the vh and vv parameters). A -z option was added to rpict to write out the distances for each pixel in an image. This may be useful for z-buffer operations, and is used by the new program pinterp, described below. A program called pinterp was added to the burgeoning list of picture filters and converters. This program is designed primarily to interpolate animated frames for walk-throughs of static scenes, but it has a number of other useful functions besides. It takes as its input one or more rendered pictures (with their corresponding z value files) and desired viewpoint (hopefully not too far afield from the given images). Pinterp then takes the input frames and moves the pixels to their new computed location. Filling operations make sure that the final image does not have large unpainted regions. Added smoothing option to gensurf, using bilinear Phong surface normal interpolation. Not perfect, but it's better than nothing and permits the use of fewer polygons to represent smoothly curved surfaces. ========================= Version 1.3 Added conversion utility for IES (Illuminating Engineering Society) standard format luminaire data. The translator, called ies2rad, takes any number of luminaire data files and creates the necessary Radiance geometric descriptions and data files and puts them in the specified library location. A new data format was added to accommodate irregularly-spaced data points. Added rview driver for NeWS for Sun and Silicon Graphics workstations. This work was done by Isaac Kwo. Fixed oconv for scenes with many overlapping instances (runs faster now). Added consitency checks intended to detect stale octrees without restricting changes to surface modifiers. (But you still can't change total number of objects). Stale octrees caused some of the strangest behavior... Finally broke down and wrote my own malloc(3) routines. There is a CalTech module floating around Berkeley that caused a lot of trouble for bmalloc(), resulting in about twice the needed memory use. Added translator for Architrion. Arch2rad uses mapping rules to assign materials to surfaces from input file. This is a general method (dreamed up by Charles Ehrlich) that allows users to assign materials based on whatever information is available from the CAD file. See the accompanying description file on translators in the ray/doc/notes directory. Added fisheye view types to rpict and rview, useful for looking at entire scenes and for LEEP virtual reality wide field stereo viewer. Wrote xshowtrace, a fun program for watching rays as they are being traced on an X11 display. Write ra_pr24 for converting between 24-bit Sun rasterfiles and Radiance pictures. Perhaps this should be incorporated in ra_pr, as ra_t8 and ra_t16 should be one program, but the algorithms and memory requirements are totally different for colormapped images. Added routines for performing 24-bit gamma correction in integer domain, making programs like ra_pr24 and ra_t16 run faster. ========================= Version 1.4 Fixed bug in IES translator that resulted in the incorrect interpretation of type B photometric data. (1.3.1) Added types for using BRDF data: plasfunc, metfunc, plasdata and metdata. Added interpretation of source color to ies2rad and color corrective filtering to pfilt. Reference file used by both is "lamp.tab" in library directory. Added picture flipping program, pflip, and pattern preprocessing script, normpat.csh, to the px directory. Fixed bug in ra_pr24 that caused the reversal of red and blue values. New version accepts both RT_STANDARD and RT_FORMAT_RGB files but produces only RT_STANDARD rasterfiles as output. Added -m option to xform to change modifiers for surfaces. Wrote replmarks program to replace markers in a Radiance scene file for light sources or other objects. Added global compilation script, makeall. Fixed calculation of luminance in display programs and gensky to use white light assumption. Added options and features to pcomb. Added FORMAT= line to all Radiance file headers for improved error checking and clarity. Added icon bitmaps for rview and x11image under X11 and fixed a bug that caused x11image to ignore keyboard input. ****** COMPATIBILITY CHANGE ******** Added constant definitions to cal files using ':' instead of '='. This makes for faster calculations since many more constant expressions can be reduced at "compile" time. Created glare calculation programs in util directory. Findglare locates glare sources, xglaresrc circles sources on a displayed image, and glarendx computes various glare indices. ========================= Version 2.0 Added -i option to renderers for computing irradiance rather than radiance. Eliminated redundant -oI option from rtrace and added -I option to replace old -oi. This hack ignores glass and similar surfaces during the calculation. Changed icon for x11image (renamed ximage) to miniature bitmap of picture. Fixed bug in xshowtrace that prevented it from working with twm. Added memory recovery feature to rview so that when it refines itself out of memory it doesn't quit but instead gives the user a command line saying "out of memory:", which allows the output to be written and so forth before quitting or restarting the image. Added -g (gamma correction) option to pvalue. Added the more general BRTDfunc for procedural definition of bidirectional reflectance-transmittance distribution functions. Also added transfunc and transdata types. Changed trans types to modify the color of the transmitted specular component. Fixed a bug in ra_t16 introduced in the last change which caused problems for the (default) 16-bit output mode. Improved Monte Carlo sampling for penumbras (-dj) and ambient super-samples (-as) using stratified random number sequence introduced by Christophe Schlick at '91 Eurographics workshop on rendering. Wrote falsecolor program to transform images to false color with value labels. Modified pcomb to allow different output sizes and access to local pixel neighborhood for specialty filtering applications. Made cone and sphere routines more forgiving of negative radii, switching between inverted types as necessary and giving warning messages instead of bombing. Cones with equal radii are now silently converted into cylinders. Hopefully, these changes will make writing Radiance scene file translators a little bit easier. Unfortunately, we still bomb for zero-sized cones and spheres. Wrote a program called getbbox that just computes the bounding box for a set of Radiance scene files. It is basically a modified version of oconv that doesn't store objects in memory and doesn't care about undefined modifiers. Added -a and -l options to pcompos and made both pcompos and pcomb read from commands as well as files. Substantially improved the accuracy and appearance of the interreflection calculation by computing gradients at the same time as primary values and then using a first order interpolation scheme. This affects the information stored in ambient files, so old files will have to be thrown away. Added secondary light sources from planar mirror, prismatic and holographic surfaces. This created the new options -dr (direct relays) and -dp (direct presample density) to the renderers. The document secsrc.note describes this feature in greater detail. Put many of the routines into a common library. Wrote a replacement for makedist, called mkillum, which generates light distribtuions and illum descriptions for windows, skylights, etc. in a much more natural and automatic fashion. Fixed long-standing bug in text routines which caused slanted text to slant the wrong way! Added -e option to ra_bn, ra_pr, ra_pr24, ra_t8 and ra_t16 programs for faster and more convenient image conversion w/o using pfilt. ****** COMPATIBILITY CHANGE ******** Finally added contexts to calcomp routines so identical names in different function files no longer conflict. Loading of function files also works automatically without those nasty "key" variables. New context marks (backquote characters) appear in some local variables defined in some of the cal files. This is inconsistent with older versions, and must be changed back to and underscore or some other legal character if these files are used by 1.4 and earlier. Wrote ra_tiff program, using Sam Leffler's libtiff package to read and write 24-bit TIFF images. Wrote ra_ppm program to convert to and from Poskanzer Pixmaps. ****** COMPATIBILITY CHANGE ******** Changed run-length encoding of Radiance pictures to gain better compression. Routines can still read old format, but new ra_rgbe program must be used to write convert images to a more generic format that can be read by release 1.4 and earlier. Defined U and V parameters in rayinit.cal for more convenient (and sloppy) use of 2-dimensional textures and patterns on planar surfaces. Beefed up lampcolor program to compute spectral radiance for diffuse emitters. This was a previously a pain in the butt and a serious source of error for scenes not modeled using IES data files. Added version reporting to rpict, rtrace and rview. Use standalone -version option. Changed to quincunx initial sampling pattern in rpict. This should reduce artifacts from adaptive image sampling at no added cost. Added -rgb option to ra_pr24 to produce RT_FORMAT_RGB files. Added -ds option to renderers to make source sampling more accurate for large area sources. It is no longer necessary or recommended to break large sources (such as windows) into smaller pieces with gensurf unless their output distribution changes over their surface. Also, cylinders can now be used as light sources, provided they are not too short compared to their radius (causing them to be frequently missed). Added -I option to xform to invert surfaces. Added SMLFLT and BIGMEM defines to better control the sizes of data structures during compilation. Made their setting relatively straightforward in makeall and created a separate rmake program to hold the options generated by makeall. Made the programs more forgiving of machine differences on octrees. ****** COMPATIBILITY CHANGE ******** Fixed incorrect conversion factor between radiance and luminance. The correct luminous efficacy value is now defined in color.h as WHTEFFICACY. It was 470 lumens/watt previously, now it has been corrected to 179 lumens/watt. This affects the absolute values in the output of programs like gensky and ies2rad. Thus, these programs should be rerun to generate corrected files for this version of Radiance. Also, the new versions of display programs like ximage will give different values with the 'l' command on an image generated with 1.4 and previous releases. The following alias may be used to fix the radiance values in a picture generated using previous versions of gensky and ies2rad: alias pfixabs '( echo EXPOSURE=.381 ; cat \!:1 ) > \!:1.$$ ; mv \!:1.$$ \!:1' Improved accuracy of glass material type and added option for user-supplied index of refraction. Added sgi to rt/Makefile and px/Makefile SPECIAL category for compiling Isaac Kwo's NeWS driver for rview and the glimage program by Jim Winget. Also fixed various compile problems for the SGI. Improved handling of alternate scanline orientations. The programs pflip and protate (used to be prot) now affect the scanline ordering of the file without messing up the view parameters for programs like pinterp and findglare. ========================== Version 2.1 ****** COMPATIBILITY CHANGE ******** Changed function specifications to allow the use of expressions as well as variables in scene files. Use of this feature may result in some loss of backwards compatibility as older software does not support it. Added makeall option for NeXT machine and changed code to suit. ****** COMPATIBILITY CHANGE ******** Added off-specular sampling and anisotropic materials plastic2, metal2 and trans2. The old options -sp, -sj, -st and -p have been renamed to -ps, -pj, -pt and -pa, respectively. New options -sj and -st have been introduced. Improved ray intersection calculations using -DSMLFLT option by increasing epsilon used in tests. This eliminates most of the errors that occured when this compile option was used in version 2.0. Added capability to gensurf to read height or point data from a file. This makes it more convenient to make (optionally smoothed) landscapes from recorded measurements and the like. Corrected irradiance gradient calculation. New formula predicts gradient better and thus reduces artifacts in indirect calculation. Modified replmarks to accept multiple markers. Added -aI and -aE options to read ambient include/exclude materials from a file. Reduced effect of light leaks during interreflection calculation. Added -ang option to gensky for giving solar angles explicitly. Added ability of "view" command within rview to accept view options. Fixed a long-standing bug in gensky that caused it to report inaccurate values for the ground ambient level. Since the dayfact script uses this value in calculating its results, version 2.0 will be in error (by as much as 30 or 40%). Fixed a bug in the reflectance normalization for isotropic and anisotropic Gaussian highlights that caused too much light to be reflected near grazing angles. Much thanks to the folks at Ohio State University (Steve Spencer and Kevin Simon) who pointed this out to me! Fixed bug in xshowtrace introduced in 2.0. It absolutely didn't work after my most recent changes to image.c. (Sorry about that!) Finally fixed shortcoming of view reading routines so they can get the views from pictures created with absolute program paths (eg. /usr/local/bin/rpict). This affects programs like xshowtrace and glare, as well as the recover option of rpict. Fixed isotropic Gaussian distribution (highlights for types "metal" and "plastic") to make them more accurate and bring them into line with the new anisotropic Gaussian models ("metal2" and "plastic2"). This may affect the appearance of some hightlights. Added -H and -R options to pvalue to control resolution strings and color ordering. Fixed byte ordering for 24-bit color displays in ximage.