Patch #5:
---------
Changes to reflect that free() may be destructive.
Fixed several other free()-related bugs.
Cylinders and cones were always textured in canonical cylinder/cone space.
Fixed divide by zero bug in cylinder code.
Optimizations in cylinder and cone code.
HUGE in bounds.c was too huge for some machines.  Replaced by FAR_AWAY.
Improved handling of near edge-on intersection with triangles and planes.
Added check for invalid colormap entries.
Lint removal.

Patch #4:
---------
Added gloss texture.
The number of primitives in each object is reported in verbose mode.
Attempting to render an empty scene now results in an error message.
Fixed a number of typos in the documentation.
Fixed core-dumping bug in heightfield code.
Changes to makcyl() and makcone() to avoid rotating about degenerate axes.
Fixed thresholding bug in fBm texture.
Fixed bug with appending to "mtv" image files.
Fixed bug with the initialization of pointers to colormaps.
Updated Makefile.
Added SHAREDMEM compile-time switch for linda on shared memory machines.
Fixed a number of linda-related typos.
Fixed minor formatting problems in texture mapping tutorial.

Patch #2/3:
-----------

Added depth of field code, courtesy of Rodney G. Bogart.
Removed handling of #include directives in input files.
Added handling of cpp-generated lines of the form '#n "filename"'.
Added new error and warning message routines.
Added -F option to allow selection of frequency of status reports.
Added reporting of total and split CPU times during verbose status reports.
Removed hard-coded constants in several of the textures.
All textures that use colormaps now use the computed colormap entry
to scale the ambient and diffuse components of a surface's color.
Documented low-altitude mist.
General cleanup of documentation.
If NORLE is defined, images will be rendered top-to-bottom
to be compatible with the output of Mark VandeWettering's ray tracer.

Patch #1:
---------

Corrected computation of field of view when in Stereo mode.
Atmospheric effects are now applied to background rays.
Statistics are returned to supervisor and reported when using Linda.
Created atmosphere.h to facilitate addition of new atmospheric effects.
Renamed rotate(), translate() and scale() to avoid name clashes when
linking with external libraries.
Updated Linda syntax.
Fixed typos in code comments in hf.c.
Added -w option.

---------

Version 3.0:

Bugfixes
--------

Was possible to divide by zero in main.c and intersect.c.
Superquadric normals were sometimes unnecessarily flipped.
Fog and mist should be applied after shading calculations.
Reading colormap file with > 256 entries dumped core.
Couldn't comment out slashes.
Removed check of dotp(ray, norm) in shade().
Added check for s < lightdist in inshadow().
Various problems in grid.c.

Portability Changes
-------------------

Calculation of index in poly.c and triangle.c was non-portable.
Some code in intersect.c was apparently non-portable.
Modified functions to no longer return structures.

Misc. Changes
-------------

No longer need use "endfile" keyword at the end of input files.
Added adaptive ray tree pruning and -T option.
Combined -R, -G and -B options into -C option.
Added -R option.
Optimization of IntBounds().
Merged int_grid() and DDA().
Added "samples", "jittered", "cutoff", "contrast" and "adaptive" keywords.
Flat-shaded triangles now require less storage space.
Shadow cacheing is now the default.
The number of shadow cache hits are reported.
Shadow cache hits are counted as "shadow rays".
Shadow hits are counted as "intersecting rays".
The number of shadow hits is reported.
Various cleanups courtesy of lint.
