Blue Moon Rendering Tools -- Summary of recent changes
------------------------------------------------------

Summary of changes from 2.3.5b to 2.3.5c (Apr 1997)
---------------------------------------------------
slc / runtime SL interpreter:
  * Certain texture map lookups were incorrect.  This was a bug
    introduced in 2.3.5b.
  * Increased max # of labels in a compiled shader.

  * Bug fix: "screen" space transformation were wrong, as they were
    not independent of field of view.
  * Bug fix: Du() and Dv() of a point thought they were returning a
    float, rather than a vector/point.
  * Bug fix: incorrect code was generated for a=b=c

rendrib:
  * Fixed bug with correctly using imager shaders (like background.sl),
    bug was introduced with 2.3.5.
  * Fixed behavior of Exposure for framebuffer display renders.

  * Bug fix: Transform acted like ConcatTransform when motion blurred.

rgl & rendribv:
  * Eliminated unnecessary warnings about invalid RiIlluminance handles.




Summary of changes from 2.3.5a to 2.3.5b (Mar 1997)
---------------------------------------------------
slc / runtime SL interpreter:
  * Fixed bug where vtransform didn't understand about "NDC" space.

rendrib:
  * Fixed bad bug (new to 2.3.5) which incorrectly calculated dicing
    rates for bicubics behind the camera, resulting in huge memory 
    waste.
  * Yet another subtle fix to polygon handedness under certain 
    conditions.
  * Fixed bug: 16 bit TIFF output was broken under Linux.
  * Fixed bug that under extremely rare texture mapping circumstances,
    would crash rendrib.



Summary of changes from 2.3.5 to 2.3.5a (Mar 1997)
--------------------------------------------------
slc / runtime SL interpreter:
  * Fixed incorrect compile for color / color.
  * Fixed incorrect compile for certain space transformations.

rendrib:
  * Fixed bug for user "uniform" vertex variables for polygons,
    points polys, and points general polys.
  * Issue error message for palette TIFFs as texture maps (used to
    silently give wrong results for palette images).
  * Fixed bug: Orientation outside the world block, and before any
    transformations at all would cause a crash.
  * Subtle change in faceforward() behavior to exactly match the
    spec and PRMan.  Previously was incorrect when vertex "N" normals
    faced opposite to the correct handedness for polygons.
  * Fix to radiosity parameters: there was an inconsistant use of
    "patchsize", "elemsize", "minsize".  Now these are expressed in
    units of the current coordinate system in effect at the time of
    the Attribute "radiosity" statement.  (This is the intuitive way
    that everybody probably always expected it to work.)



Summary of changes from 2.3.4 to 2.3.5 (Jan 1997)
-------------------------------------------------

slc / runtime SL interpreter:
  * Fixed bug that prevented assignment of strings in shaders.  (Passing
    strings in was okay, but you couldn't reassign their values.)
  * Bug fix: slc reported argument errors for the "distance" function,
    even when it was being used correctly.

rendrib:
  * Limited support of true displacements!
    (use Attribute "render" "truedisplacement" [1]).
  * Finally fixed some very subtle problems with handedness and one sided
    primitives.
  * Now supports arbitrary filter support sizes.  Previously, there was
    a bug which restricted filter supports to a max of 3 pixels.
  * Fixed bug: previously, objects' screen space bounding boxes were not
    properly expanded for DOF effects.  This occasionally "clipped" regions
    when extreme blur was used.
  * New options: "limits" "texturememory" and "limits" "geommemory".
  * New attributes: "light" "nsamples" [n] (allows you to increase sampling
    of an area light independent of PixelSamples).
  * Vertex variable interpolation is now done correctly for bicubics and
    NURBS.  Note that NURBS now interpolate user "varying" variables in
    the same way as PRMan 3.6 and later, *NOT* in the obsolete way that
    PRMan 3.5 and earlier used.
  * Fixed bug that dumped core when rendering a scene with zero objects.
  * Fixed incorrect rendering of tori for wacky combinations of negative
    thetamax, phi, radii, etc.
  * Fixed a bug that sometimes caused a floating point error/crash
    when using object instancing (only showed up on Linux).
  * Attribute "trimcurve" "sense" is now understood.
  * Fixed bug in RiSkew that transformed incorrectly if the two vectors
    passed to RiSkew were not perpendicular.
  * Fixed bug that computed incorrect derivatives for triangles.
  * Improved SL calculations of derivatives in a way that avoids some
    subtle errors that the software was previously prone to.

rgl & rendribv:
  * Fixed bug in RiSkew that transformed incorrectly if the two vectors
    passed to RiSkew were not perpendicular.

client library (libribout.a):
  * Fixed a bug that incorrectly freed memory if you made many calls
    to RiBegin/RiEnd.
  * Fixed a bug in RiPatchMesh that expected the wrong number of varying
    arguments (like "N") for bilinear patch meshes.

libsoargs:
  * To match PRMan, SO_GetName now returns the shader name, not the
    shader *file* name.

Miscellaneous:
  * The BMRT user manual is now distributed in HTML.
  * For all RIB-eating programs, BMRT now supports RiReadArchive (just
    like PRMan 3.6) as an include mechanism for RIB files.  The old
    ##Include is no longer supported, being completely replaced by
    RiReadArchive!
  * libsoargs.a: Fixed a bug that sometimes caused certain parameters
    of the shader to not be reported.
  * Improved error reporting of RIB parsing errors and unknown
    option/attribute tokens.




Summary of changes from 2.3.3 to 2.3.4 (June 1996)
--------------------------------------------------

slc / runtime SL interpreter:
  * No longer required that parameters be initialized to constants.
    Now any expressions are okay for parameter initialization.
  * Fixed bug that did not allow assignment to function parameters.
  * Rendrib occasionally got confused between displacement and surface
    shaders' "shader" space.  Now fixed - shader spaces should be correct.
  * Rendrib previously didn't handle shaders with >64 parameters.  Now
    it's unlimited.
  * Fixed bug in fresnel(), which was calculating the transmission
    direction incorrectly.
  * The highlights produced by specular() now more closely approximate
    those by PRMan (which does not use the standard specular function).
    You can revert to the old (standard) behavior using Option "render"
    "prmanspecular" [0] (details are in the docs).

rendrib:
  * Fixed outstanding bugs with object instancing, and now object
    instances calculate their radiosity correctly.
  * Fixed bicubics that specify homogeneous points ("Pw").
  * Fixed handedness errors -- normals should all be correct now.
  * Vertex variables finally working properly!  Bugs regarding vertex
    variables are fixed, and the parser and client library are also a bit
    better at catching errors regarding vertex parameters.
  * NURB and patch mesh parameterization should now be correct (before
    it always parameterized on [0..1] for each patch).
  * Improved quadrics when radius < 0, zmin > zmax, thetamax < 0, and
    other strange circumstances.
  * Bug fix: behavior was wrong for Option "radiosity" "minpatchsamples".
  * Improved dicing of small bicubics & NURBS.
  * Attribute "light" "cache" "off" no longer needed for volume shaders
    to work correctly -- rendrib figures out itself when it can cache
    light values.
  * GeneralPolygons with holes are fixed (previously, the holes were
    not always shaped correctly).
  * Interior & exterior shaders were not necessarily called correctly.
    Now they are correctly called based on the surface normal.
  * Bug fix: RiTransform inside a motion block caused a core dump (but
    all other blurred transformations were okay).  Now fixed.
  * Better behavior for crop windows: only output pixels inside the crop.

rgl & rendribv:
  * Fixed bug that drew tori incorrectly.
  * Bug fix: RiTransform inside a motion block caused a core dump (but
    all other blurred transformations were okay).  Now fixed.
  * Fixed bicubics that specify homogeneous points ("Pw").

Miscellaneous:
  * New example scenes: smoke/atmospheric effects, dresser/specular-to-
    diffuse illumination, teapots/glass and shiny examples.
  * New shaders: clamptoalpha, glass, wood2, wallpaper_2stripe, noisysmoke.
  * Fixed parser bug that sometimes dumped core with a particular
    combination of ##Include, EOF, and gprims.




Summary of changes from 2.3.2 to 2.3.3
--------------------------------------

slc / runtime SL interpreter:
  * Support for the new SL features introduced with PRMan 3.5,
    including: min/max with >2 arguments;  point and color args for
    min, max, clamp;  optional basis string for spline;  ptlined;
    filterstep;  message passing between shaders.
  * Fixed compiler bug which choked on certain expressions involving
    constant color triples (e.g., f * color (1,1,1) ).
  * Better function polymorphism (makes better guesses about the
    return type of noise() and texture() when you don't explicitly cast).
  * Working Deriv() function.  In fact, to the best of my knowledge,
    all documented SL functions now work properly.
  * slc accepts cpp arguments (like -I to give include path).
  * Fixed SL interpreter runtime bugs on the DEC Alpha.
  * Transformations from & to "screen", "raster", and "eye" spaces
    are fixed, as well as named coordinate systems.

rendrib:
  * New -zoom <scale> command line switch, lets you "zoom up" pixels
    when used in conjunction with -d switch.
  * Uses OpenGL for framebuffer display, and supports framebuffer
    display for non-SGI platforms (using the Mesa library).
  * Fixed bug that made CSG objects display incorrectly when used in
    conjunction with the -d flag, where the argument was > 1.
  * Named coordinate systems now work properly (were broken before).
  * New -pos <x> <y> command line option forces position of window
    for rendering to framebuffer.
  * Fixed minor errors with radiosity meshing for tori and spheres.
  * Parser is a bit smarter with undeclared tokens -- instead of
    crashing, it tries hard to extract values anyway.
  * Fixed obscure bug involving calculation of NURBS and bicubic
    bounds.  It didn't appear to render incorrectly, but the bounds
    weren't as efficient as they could have been.
  * Fixed bug which caused >4 sided polygons to have parts missing.
  * Removed many of the fixed limits in sizes of arrays which can be
    read by the parser (mostly problems with for PointsPolygons).

rendribv:
  * Now uses color by default, but has -nocolor option, and
    default background is now {.1,.1,.1} instead of {0,0,0}.

rgl:
  * Now uses OpenGL.
  * rgl now distributed for many non-SGI platforms (using the
    Mesa library to implement the OpenGL calls).

libsoargs:
  * Fixed bug where files didn't close when libsoargs was done with them.
  * SO_SetShader incorrectly returned 1 for okay, 0 for error.  Now it
    correctly returns 0 for okay, -1 for error (to match Pixar's library).
  * The svd_detail field of SOvissymdef records were sometimes incorrectly
    set to SO_DETAIL_UNKNOWN.  This has been fixed.
  
libribout:
  * Fixed but with output of Quantize directive.






Summary of changes from 2.3.1 to 2.3.2
--------------------------------------

rendrib:
  * Trim Curves fully supported!
  * Optimizations for rendering NURBS and bicubics (now are much faster,
    especially when the patches are mostly flat).
  * Improved RiOrientation.
  * Fixed bug with bicubic height fields.
  * Improved texture filtering.
  * Accepts absolute paths for shader names.
  * Bug fixed -- all standard parameters work for all polygons.
  * Radiosity bug fixed -- previously handled 1 sided surfaces with
    reversed handedness incorrectly.
  * Radiosity bug fixed -- normals at sphere's poles not computed correctly.

slc / runtime SL interpreter:
  * setcomp() fixed.



