Tue Oct  5 21:33:08 PDT 2010

 * Version 0.13
 * Bug-fix release. view3ds does not load images textures from the
   current directory.
 * Made logic to search directory for partial match consider only the
   first 8 characters of the basename.

Sun Sep 19 03:13:50 PDT 2010

 * Version 0.12
 * Changes that people using view3ds and dump3ds won't notice, but
   there's cool stuff under the covers that programmers will notice.
 * The Dice3DS example code now can make use of the GUI's image
   loading functions, so PIL doesn't necessarily need to be installed,
   though it will be used if it is.
 * Also, the example OpenGL code is updated to work with pyglet.gl as
   well as PyOpenGL.  People using Dice3DS in their pyglet programs
   might appreciate this.
 * A module (Dice3DS.example.config) was added to allow the user to
   select which OpenGL wrapper or image loading package the example
   code will use.
 * view3ds adds GLUT as the default front-end.  However, it can still
   optionally use pyglet and PyGame.
 * An option was added to view3ds to disable textures ("-i none").
 * Fixed some obsolete stuff in the documentation.
 * Removed 1-D textures from gltexture.py.  Who uses those anyway?
   Watch, I'll start getting letters.

Sat Aug  7 03:10:24 PDT 2010

 * Version 0.11
 * Some pretty big improvements I want to get out there, but this will
   only be a minor release because I have even bigger things planned.
 * By default, dom3ds.py tries to recover if it detects a formatting
   error, inserting an error chunk with the appropriate error message
   as a field.
 * Non-tight error checking is now default for view3ds and dom3ds.
 * Big improvement (about 5x) in the normals calculation speed, still
   not as fast as I'd like.  It still has one Python loop, but it uses
   a lot of numpy tricks to eliminate need for dictionary and to keep
   iteration to a minimum.
 * Pyglet added alongside Pygame as a front-end to view3ds.
 * Added some minor intelligence when searching for textures.
 * Various bug fixes. GLModel.render() restores enable flags before it
   returns, and some overflow errors are corrected.


Thu Oct  2 09:01:42 EDT 2008

 * Version 0.10
 * First new feature version in a while
 * KEYFRAMING SUPPORT! Dice3DS now parses KFDATA blocks, and the
   example OpenGL code (often the only part people use) now takes the
   keyframe data into account when rendering models.  This means that
   the frequent issue where models appear disassembled in view3ds is
   now fixed.  view3ds now has an option to select the keyframe to be
   rendered, although few 3DS files out there have more than one.
 * Substantial improvements in loading speed by using OpenGL vertex
   arrays.  Normals calculation is now the only major bottleneck.
   However, very large models can be rendered quickly in view3ds by
   disabling the smoothing calculations (using "-n none").
 * Added a helpful message to user to consider using the "-r" switch
   whenever it might help.
 * Various bug fixes with the OpenGL rendering and the normals
   calculations.  Some slight style improvements.  A slight speed
   improvement to the cross-product and angle-subtended normals
   calculations.

Sun Sep  2 19:53:25 EDT 2007

 * Version 0.9
 * Fixed silly typo in dom3ds that caused writing 3ds files to fail.
 * Added a couple options to view3ds to control lighting conditions.

Sat Aug 18 00:26:17 EDT 2007

 * Version 0.8
 * Fixed a couple embarrassing bugs in view3ds:  1. A syntax error
   where parentheses were omitted from function arguments.  2. A
   negative sign applied to a tuple.
 * Replaced glDeleteTexture with correct glDeleteTextures in
   gltexture.py.
 * Minor spelling changes to dom3ds.py.

Thu Apr 19 05:29:49 EDT 2007

 * Version 0.7
 * Quick bug fix in view3ds for using both Pygame 2.x and Numpy.

Sat Apr  7 13:29:34 EDT 2007

 * Version 0.6
 * It seems numpy pulled a fast one on me, and got rid of all the old
   Numeric constants (such as Numeric.Float32 and Numeric.NewAxis) Dice3DS
   had been using.  I changed them all to numpy versions (numpy.float32,
   numpy.newaxis, and so on).  The upside is: it works for numpy 1.0.
   The downside is: you can no longer "backport" it to Numeric by changing
   the import statements.
 * Most inexplicably, numpy.sum changed behavior and broke normals
   calculation.  Thus, I changed numpy.sum to builtin sum in util.py.
 * Got rid of N.take wherever it appeared, in favor of indexing.
 * Slight optimization for big-endian machines by using a destructive
   byte-swap.

Tue Jan 30 11:30:21 EST 2007

 * Version 0.5
 * Now uses numpy.  Jes' doin' my lil' part to help everyone move towards
   the new standard numerical package.  (However, Numeric should still
   work if you change "import numpy" to "import Numeric as numpy".)
 * Fixed bug on big endian machines.  It should now work on big endian
   machines.
 * Added an example module showing how to import 3DS into Blender.
 * Improved command line tools a bit.
 * Got rid of tabs.
 * Lots of respellings.

Sat Oct 29 19:23:34 EDT 2005

 * Version 0.4
 * Bugfix release.  Account for case of no matrix in the example.

Sat May 21 08:21:52 EDT 2005

 * Version 0.3
 * Minor fixes to dom3ds.py
 * Quite a bit of rearrangement of the example modules:
   - put them all in an example subpackage
   - renamed loadmodel.py to glmodel.py and loadtexture.py to gltexture.py
   - took out an awful lot of superfluous stuff (texture cacheing, etc.)
   - added modelloader.py as an example of loading models 
 * Moved the code that calculates normals into util.py; also added algorithms
   to use cross product or no smoothing as well as angle subtended
 * Removed major limitation in the angle subtended code that causes an
   exception when there are degenerate faces
 * Added a module viewer.py to view a 3ds model, which requires PyGame;
   also added a script view3ds
 * Improved the documentation a lot

Thu Oct  2 00:24:24 EDT 2003

 * Version 0.2
 * Initial release
