v0.5

    + A new file "README.utils" documents the various utility programs.

    + A new file "README.issues" discusses various usage issues.

    + A new utility program "snogbloom" adds "veiling glare" to an HDR
      input image.  Normally this is used when converting to a LDR
      output format (snogbloom itself can do the conversion), and can
      make LDR images with very bright areas look much more realistic.

    + snogcvt now supports good-quality upscaling.

    + snogcvt, snogdiff, and snogbloom now use "output preclamping"
      when converting to a LDR image format, which can improve the
      anti-aliasing of very bright areas of an HDR input image.  This
      feature may be disabled using the new "--no-preclamp" option.

      [The snogray program itself does _not_ use preclamping, and thus
      anti-aliasing of very bright areas may be sub-optimal.  See the
      "ANTI-ALIASING OF BRIGHT AREAS" section in the "README.issues"
      file for methods to deal with this.]

    + The snogray -a/--oversample option renamed to "-n" / "--samples".

    + The snogray -n/--direct-samples option renamed to
      "-D" / "--direct-samples".

    + A new snogray option, "-B" / "--background-orientation", allows
      some control over the environment map specified by a
      -b/--background option.  Most usefully, when -B is given an
      angle in degress, the environment will be rotated by that amount
      around the vertical axis.

    + The snogcvt --underlay and -p/--pad options were removed (they
      were not very useful).

    + Writing of TGA (aka Targa) image files is now supported.

    + Lua is now required (and more functionality will be moved into
      Lua in the future).  [A Lua implementation should be included
      with the distribution, so this dependency isn't a problem.]

    + The configure option "--enable-double-coords" (which used to be
      called "--disable-float-coords") now works properly.  When this
      option is given to configure, snogray will use double-precision
      floating-point for coordinates.  This usually isn't necessary,
      but can make a difference in some (rather extreme) cases where
      scene files fail to render properly.

    + Many bug fixes and code improvements.


v0.4

    + Implement material-based surface transparency/translucency.
      Materials that implement this can give arbitrary surfaces an
      additional level of transparency/translucency beyond that due to
      geometry.  This only affects _surfaces_, so it cannot be used to
      implement refraction, but because it operates on a very low
      level, it affects shadow-casting in direct-lighting, etc.,
      making it a very efficient way to add a fine "geometry" to
      surfaces.

      To use this feature, use a "Stencil" ("stencil" in Lua) wrapper
      material; the degree opacity can be a texture, so this can be
      used to implement opacity maps.  In Lua, an "opacity" or "alpha"
      parameter can also be added to a material description instead
      (which just causes a "stencil" wrapper to be automatically used).

    + Make light-emission a material property, rather than requiring
      explicit light objects for area lights.

      To make a surface into an area light give it a "Glow" material
      ("glow" in Lua).  However, currently meshes cannot be used as
      lights.

      Traditional Light objects still exist, for cases where
      light-emission isn't associated with a surface.

    + Implement loading of PBRT format scene files.  Not all PBRT
      features are supported, and sometimes the results may be
      somewhat different (e.g., due to substitution of a different
      material for PBRT material types that we don't implement), but
      many PBRT scene files work pretty well, especially geometry.

    + Implement reading of TGA (aka Targa) image files.

    + Rename the "Plastic" material to "ThinGlass" ("thin_glass" in
      Lua).

    + Use all CPU cores by default.

    + The -h/--height and -w/--width command-line options are removed;
      use -s/--size instead.

    + Automatically use LuaJIT instead of Lua if it's detected.

    + Many bug fixes and code improvements.


v0.3

    + Implement multi-threaded rendering (-j/--threads).

    + Add photo-mapping renderer (-Sphoton).  The quality isn't so
      great, but it's a start.

    + Rewrite the environment-map light (EnvmapLight) to sample the
      environment-map exactly (as well as having cleaner and smaller
      code).  This makes environment-map lighting less noisy (as the
      PDF exactly matches the illumination).

    + Add "sampleimg" utility, which outputs a "dithered" version
      of an input image.


v0.2

    + Rewrite much of the rendering infrastructure to allow more
      flexibility in implementing different rendering methods.
      The -S/--surface-integ option allows choosing different renderers.

    + Add a real path-tracing renderer (-Spath).

    + Add support for better random-number generation, using std::random
      or boost::random if possible.


v0.1

    Original version
