v0.5.2

    + Snogray will now be automatically compiled using link-time
      optimization, if the compiler seems to support the (gcc-style)
      "-flto" option.

    + Various minor bug fixes and tweaks.


v0.5.1

    + Snogray can now be properly installed!  Files referenced in
      scenes are still interpreted relative to the current directory
      (which should eventually change), but snogray can find its own
      support files in the installed location.

    + A new utility program "snoghilite" copies an input image to an
      output image, with all highlights scaled by a constant factor.
      A "highlight" is any area of the image whose intensity exceeds a
      given threshold.

      This is particularly useful for turning a low-dynamic-range
      environment-map into a HDR (high-dynamic-range) environment-map
      usable (although obviously not accurate) for scene lighting.

    + Snogray command-line syntax is slightly different:
      - Only one scene-file may be specified.
      - The output file is now optional, if the scene-file specifies
	an output file itself.

    + Various bug fixes and code improvements.


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
