ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/doc/notes/ReleaseNotes
Revision: 1.77
Committed: Tue May 31 18:01:08 2005 UTC (19 years, 5 months ago) by greg
Branch: MAIN
Changes since 1.76: +3 -0 lines
Log Message:
Added Russian roulette ray termination and fixed ambient weights & measures

File Contents

# Content
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 Version 3.5 (Released 3/21/03)
925
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 raypcalls.o module, also installed in src/lib, manages
1048 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
1142 ==============================
1143 Version 3.6
1144
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
1163 Fixed wrapping long in source hit test code, which would cause
1164 odd horizontal lines in some very long renderings.
1165
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
1171 Added -N option to rad to start multiple rendering processes in
1172 parallel.
1173
1174 Fixed bug where mesh instances were not being freed, so subsequent calls
1175 in programs like ranimove would refer to bogus data.
1176
1177 Added support in normtiff for floating-point and 16-bit/sample TIFF input
1178 files.
1179
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.
1185
1186 Fixed bug in xform where it was neglecting to add transform arguments
1187 to new mesh primitive.
1188
1189 Added -dF and -dD options to pvalue for byte-swapped floats and
1190 doubles, respectively.
1191
1192 Changed meta2tga to output correct colors.
1193
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.)
1197
1198 Changed integer tone-mapping routines to better deal with images
1199 containing large, constant regions.
1200
1201 Improved interaction with rholo -o ogl driver under OS X, which was
1202 returning bad values from the depth buffer.
1203
1204 Minor bug fix in ranimove where it was restarting processes when it
1205 didn't need to.
1206
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
1213 Fixed bug discovered by Marcus Jacobs where oconv was dumping core
1214 when it was given too many modifiers.
1215
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
1219 Added in(i) function to rcalc for more flexible channel evaluation.
1220
1221 Replaced all calls to vfork() with regular fork() calls.
1222
1223 Fixed bug in glarendx for dgr calculation with sources behind view.
1224
1225 Added -p option to histo to print percentages/percentiles r.t. counts.
1226
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
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
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
1256 Made similar change for virtual sources to allow modifiers and aliases
1257 on the mirror and prism types to work properly.
1258
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.
1261
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
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.
1267
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
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
1278 Added -l option to obj2mesh to search for material files in library
1279 locations.
1280
1281 Increased polygon vertex limit to 512 in obj2mesh and obj2rad and added
1282 warning if this limit is exceeded.
1283
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
1288 Fixed long-standing bug in reported pixel ordering out of certain
1289 protate commands.
1290
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
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 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.
1302
1303 Fixed rad so that 'scene' variable may consist only of inline commands.
1304
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
1309 Modified gensky behavior so if time is given with standard time zone
1310 designation, any -m option is ignored.
1311
1312 Added -n option to mkillum for (shared memory) parallel processing.
1313
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.
1320
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
1331 Enabled the -p option for primary conversion without tone-mapping
1332 in ra_bmp. Also provides for XYZE input conversion to RGB.
1333
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
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
1342 Fixed bug in rcalc where it sometimes wasn't parsing the input format
1343 correctly.
1344
1345 =====================
1346 Version 3.7
1347
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
1358 Changed default temporary directory from /usr/tmp, which doesn't exist
1359 on a lot of systems these days, to /tmp.
1360
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
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
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
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
1385 Fixed innacuracy 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.
1388
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
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
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.
1399
1400 Added setting of focus distance in rvu ("focus" command) and rholo
1401 ('f'/"frame" command).
1402
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
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
1413 Fixed some minor problems and inconsistencies with 16-bit/channel
1414 TIFF i/o in ra_tiff.
1415
1416 Created mksource program to generate distant sources for improved
1417 image-based lighting with light probes.
1418
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
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
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
1443 Added -T option to xshowtrace to trace rays to light sources.
1444
1445 Added meta2bmp program to produce BMP files from metafile graphics.
1446
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
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
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
1460 Implemented Russian roulette ray termination with -lr set to 0. Made
1461 this the default in rtcontrib.