Art of Illusion Version History


Experimental Derivative of v1.9, Nov. 15, 2004 (beta)


If you update from the previous version of AOI_ED, you should delete the ".aoimenus" directory (if there is one at the same location as the ".aoiprefs" file) to remove previous menu customization.

New features:
- Customizable menu shortcuts.
  The last AOI_ED already allowed to customize menus.
  Now you can use "Edit Menu" in the "Edit" menu to customize shortcuts as
  well. The appearing dialog shows a list of all possible menu items on the
  left and a tree view of the current main menu on the right. Select one item
  of the tree (not the list!) and click in the "shortcutField" text field. If
  the item already has a shortcut, it is shown below this field.
  Now you can type the new shortcut. It must be a key typed either with control
  or with shift and control key as each shortcut in AOI.
  If this shortcut is already in use by another menu item, this is shown below
  the text field. In this case you can remove this other shortcut with the
  "removeOtherShortcut" button.
  To remove the shortcut, press the "Delete" or "Backspace" key.
  If you want to reset the shortcut to the default setting, check the
  "defaultShortcutEntry" checkbox.

- Live Renderer.
  One or more views of the main window can be configured to show a rendered
  image of the current scene. Simply select a view (preferably the perspective)
  and check "Live Rendering" in the "Display Mode" submenu of the "Scene" menu.
  It may need a while before the image is rendered and presented (you shouldn't
  use this for complex scenes), If you change the scene, the image vanishes, is
  rerendered in the background and presented again.
  You can then change the environment for the live renderer with the
  "Scene"->"Set LiveRender Environment" menu item. To reset it to the scene
  environment use "Reset LiveRender Environment". The environment settings are
  individual for each view.
  To choose the renderer for live rendering, use the "Preferences" dialog.
  After changing this setting, deactivate and reactivate the live renderer so
  the setting can take effect.
  At the moment it isn't possible to further configure the behaviour of the
  live renderer.
  The object editing dialogs for light sources now have an "Apply"-button to
  make use of  this renderer. Unfortunately "Cancel" does not work as desired
  after "Apply" was used.

- Iterative Animation Scripts (probably there is a professional term for this
  feature, but I do not know it).
  This animation method allows to describe the state of an object or a group of
  objects by the state a little moment earlier (or later sometimes). So an
  animation is created going step by step (at the moment: frame by frame)
  forward in time.
  First you have to create/edit an "IterAnimation Script" (in the "Animation"
  menu) in the "samples" directory is a "IterTemplate.txt" file and two
  examples as .aoi files and the scripts as text.
  After creating the script you have to set the initial state, then you can
  change the time and the objects controlled by the script will move
  accordingly.
  An IterAnimation script consists of methods to create the initial state (this
  may be any Serializable object) , to go from one state to the next, to apply
  the current state to the scene and some methods to inform about the
  capabilities of the script. The initial state can be any Serializable object
  (e.g. HashMap, Vector from java.util package and now also Vec2, Vec3, Mat4
  from artofillusion.math package).
  At the moment only one script can be set in a scene. The script is stored in
  the .aoi file. Original AOI ignores this additional information.



v1.9

- Lots of optimizations to improve speed and memory use, especially in the raytracer.
- Added tooltips to all the toolbar icons.
- The template image can now be set separately for each view.
- When the grid is enabled on a perspective view, it now shows a ground plane.
- Added Show Coordinate Axes command.
- Added Open Recent command.
- The Create Cylinder tool now lets you specify the ratio of
top/bottom radius.
- Multiple levels of undo are now available.
- The mouse scroll wheel can be used to scroll the score.
- All of the deformation tools in the mesh editors now deform the surface in
real time as it is dragged.
- Rendered images can be saved in PNG format.
- The color model selected in the Color Chooser window is now remembered between
sessions.
- With the Move Object, Rotate Object, and Move Points tools, you can use
Alt+arrow keys to nudge objects by ten pixels at a time.
- Added Comment modules to the procedure editor.
- There is now a Portuguese translation (written by Marcos Sobrinho)
- Upgraded to Buoy 1.2.
- Lots of bug fixes.

v1.8, July 26, 2004

- The user interface has been completely rewritten to use Buoy
instead of AWT.
- Nearly all text in the program is now localized.
- Added Skeleton Shape tracks.
- Added Link to External Object command.
- Added the Script and Plugin Manager (written by Francois Guillet).
- The script editing window now provides smart indentation.
- Added a "Mask" output to Image modules in the procedure editor.
- Various bug fixes and minor UI improvements.

v1.7, Mar. 3, 2004

- Texture parameters can now be assigned per-face or per-face-vertex,
as well as per-object or per-vertex.
- UV mapping can now be done independently for each face.
- Added Hide Selection command in the triangle mesh editor.
- Added Textured display mode.
- Added "Use Gestures to Shape Mesh" option to Inverse Kinematics tracks.
- Texture previews in the procedure editor, texture mapping window,
and UV mapping window are now resizeable.
- Plugins can now define new procedure modules.
- OBJ importer automatically rescales objects to better fit scene.
- Camera filters can now depend on the depth map.
- Added Outline filter.
- There is now an Italian translation (written by Paolo Scarpa).
- Upgraded to Beanshell 1.3.0.
- Some optimizations to reduce memory use.
- Many bug fixes.

v1.6, Sept. 14, 2003

- Rewrote the inverse kinematics solver.  It is now much more stable,
and allows multiple joints to be pinned.
- Added inverse kinematics tracks as a new type of distortion track.
- The Bevel/Extrude function can now be applied to vertices and edges
as well as faces.
- Added Bevel/Extrude tool to give a more interactive interface for
this function.
- Added Create Vertex tool to the triangle mesh editor (partly written
by Michael Butscher).
- The "Close Selected Boundary" and "Join Selected Boundaries"
commands can now be applied to incomplete (partially selected) pieces
of boundaries.
- The Skeleton tool now provides Forward Kinematics handles for
adjusting each degree of freedom separately.
- Added Import Skeleton command.
- Added Set Parent Bone command.
- Improved the appearance of bones in the mesh editor.  They are now
three dimensional, and show through the surface when the Skeleton tool
is selected.
- The UV texture mapping window now has a Move View tool for scrolling
the texture (implemented by Michael Butscher).
- Improved antialiasing in the raytracer to reduce noise.
- There is now a Japanese translation (written by Tanaka Masahiko).
- There is now a French translation (written by Francois Guillet).
- Various bug fixes and other minor improvements.

v1.5, May 31, 2003

- Added photon mapping.  This can be used to render both caustics and
global illumination.  There are now three options for global
illumination: Monte Carlo (the old method), Photon Mapping, or Hybrid.
- Procedural textures can now depend on the angle at which the surface
is viewed.
- Cameras can have filters attached to them.  Current filters include
Brightness, Saturation, Tint, Blur, and Glow.  Filters can be animated
by adding a Pose track to the camera.
- There is now a Danish translation (written by Jan Rouvillain).
- A few bug fixes.

Experimental Derivative of v1.5ea1, Mar. 31, 2003 (beta)

- "Pinned" UV-Mapping. A (hopefully) simpler method to use UV-mapping. Select a
  few points in the UV-view (left view), set them as pinned (checkbox bottom
  left). Move them to the desired position. Select all vertices you want to move
  accordingly and click "moveVertices". To experiment with some options for the
  motion method click "moveOptions".
- Customizable menus. Select "Edit Menu" in the "Edit" menu. The appearing
  dialog shows a list of all possible menu items on the left and a tree view of
  the current main menu on the right. To move menu items simply drag them around
  as e. g. in the object list. To remove press DEL or backspace, to add new
  elements select them from the list on the left and click "--->". To change the
  label, enter text in the "Item name" text field. If this field is empty, the
  default label (depending on the language) is used. For some items which change
  their label programmatically (e.g. "Undo"/"Redo") the text field does not
  work.
  The menu structure is saved in the file "MainWindow.menu" in the ".aoimenus"
  directory at the same location as the ".aoiprefs" file. If you delete or
  rename the menu file, the default menu will be used again.
- Changes from 1.4beta up to 1.5ea1 incorporated



Experimental Derivative of v1.4beta, Feb. 09, 2003 (beta)

- Changes from 1.4ea2 to 1.4beta incorporated
- Better positioning of tool created objects. Objects created by the extrude,
lathe or skin tool are now placed at the same (or nearly the same) position as
the objects they were created from.
- Creating a combined trimesh. If multiple objects are selected and "Convert to
Triangle Mesh" is used, a new trimesh containing the geometry of all selected
objects is created. Skeletons, texture settings and smoothing method are lost.
This is different from a boolean union because it does not modify the meshes in
any way.
- Create vertex tool. The triangle mesh editor has a new tool. At the moment it
shows the "create sphere" icon. It allows to move a single vertex (for
convenience), to create free vertices (not attached to a face) and to subdivide
edges or faces. Double clicking on the icon allows to configure which of these
operations should be performed.
- Create Face. A new menu item was added in trimesh editor. Select exactly
three vertices and use the menu item to create a new face.
- Illegal surface warning. Using the delete command in the trimesh editor
in original AOI sometimes gave the error, that this would result in an illegal
surface. This is now a warning. If you select "Ok" here, the deletion will be
done anyway. Be careful: This may lead to problems, even program crashes, but
surprisingly seldom.



Experimental Derivative of v1.4ea, Jan. 17, 2003 (beta)

- Creating quicktime files works again.
- The texture view in the UV mapping editor can be moved and scaled
  with right mouse button and control key. I recommend to set the
  resolution to "low" when using this feature because the texture
  must be rerendered for each motion
- The animation score can be moved and scaled with right mouse
  button and control key. Because original AOI uses the shift key
  for scaling here, the user interface might be a bit confusing
  here. Suggestions?
  This was already implemented in ED_20021231, but I forgot to mention.
- Wireframe diplay mode is a bit faster now by using a dirty trick:
  If a drawn line is very short (one or two pixels) it is nearly
  invisible, so the program draws only one third of these lines
  really.

Experimental Derivative of v1.4ea, Dec. 31, 2002 (beta)

- Additional fields in ScaleShiftModule. The fields allow to set 2
  input and desired output values, the scale and shift values
  are automatically set accordingly. Unfortunately the fields are
  not saved in file, this would change the file format.
- Copy & paste support in procedural editors.
- Mark dirty preview. If a preview window is currently not up to date
  ("dirty") it draws a thin red border.
- "Render immediately" menu option. This allows to skip the
  "Rendering options" dialog and uses the previous settings.
- Fixed a bug in my own BMPEncoder. Sometimes width and height of the
  image are not yet available when BMPEncoder asks for it.
  If this happens, the encoder waits 600 ms before retrying to
  get the size.
- Combined scale & move tool in main scene. The scale tool now also
  allows to move around an object if you drag the object itself instead of
  the handles. This was already implemented in aoi_ed_20021216, but
  I forgot to mention.
- The synchronization between main scene and object editor can be disabled
  now by a checkbox in the application preferences.
- Changes from original aoi 1.3 to 1.4ea were incorporated.

- WARNING: Applying custom distortion tracks on actors. This is more a bug
  than a feature, it does not work properly and may even corrupt the
  data files. I only mention it to prevent anyone from accidental use.
- Creating quicktime files does not work because I have no JMF at the moment.
  To fix this, you can either replace the artofillusion/image/MovieEncoder.java
  by the same file of the original version or wait about one week, then I will
  fix this.

v1.4, Feb. 15, 2003

- The VRML and OBJ exporters can now export 2D textures as image maps.
- Redesigned the antialiasing algorithm for the raytracer.  It now
offers two levels of antialiasing, and produces better looking images
while needing fewer rays/pixel.
- Added "extra smoothing" options to the raytracer to reduce noise in
global illumination.
- Can load high dynamic range images in Radiance (.hdr) format for use
as texture and environment maps.
- Can save raytraced images as high dynamic range (.hdr) images.
- Pose tracks now have a "relative" mode allowing complex motions to
be built up from multiple tracks.
- Restructured the "Add Track" submenu to make it easier to add
different types of position and rotation tracks.
- Display mode can be set independently for each of the four views in
the main window.
- The "Set Smoothness" and "Edit Points" commands now update the display
in real time to give immediate feedback.
- The procedure editor now supports cut and paste.
- There is now a German translation (written by Martin Winkelbauer).
- Added "Render Immediately" command.
- Added "Optimize Mesh" command to the triangle mesh editor.
- Added "Display as Quads" command to the triangle mesh editor.
- Magnification can now be set to any value, rather than a fixed
list of values.  In parallel projection mode, control-drag with the
Move View tool zooms by changing the magnification.
- Object editors now gray out anything which is not selectable based on
your current tool and selection mode.
- Can save rendered images in BMP format (implemented by Michael Butscher).
- Converting a curve to a triangle mesh now produces a much better
triangulation of the curve.
- Minor user interface improvements too numerous to list (some
implemented by Michael Butscher).
- Various bug fixes.

Experimental Derivative of v1.3, Dec. 17, 2002 (beta)

- Bug with UV-mapping fixed

Experimental Derivative of v1.3, Dec. 16, 2002 (beta)

- Arbitrary magnification factor for the views
- Rotate scene view around center of selection
- Export rendered images in BMP format
- Mesh editing synchronized with main scene (buggy)
- Nonmodal bone editor

v1.3, Nov. 24, 2002

- Added Beanshell scripting (requires Java 1.2 or later).
- Added UV mapping.
- There is now a "Shininess" texture property for setting the strength of
specular highlights independent of specular reflections.
- The raytracer now offers Russian Roulette sampling as an advanced option.
- Implemented Ken Perlin's "improved" noise function.
- The .obj importer can now import textures from .mtl files.
- Added POV-Ray export (implemented by Norbert Krieg).
- Lots of bug fixes.

v1.2, Aug. 9, 2002

- Added procedural distortions (Bend, Twist, Scale, Shatter, and Custom).
- Added Tube objects.
- Position and Rotation tracks can apply to any joint in the skeleton of
an object.
- Animations can be saved as Quicktime movies (implemented by Ken McNeill,
requires Java Media Framework).
- Added "Bind to Parent Skeleton" command.
- Added a Preferences window for setting global options.
- Added a freehand selection mode in object editors.
- Object editors now let you independently hide or show the control mesh,
object surface, and skeleton.
- You can set a template image to use as the background in editing windows.
- Started the (very long) process of internationalizing all text in the
program, so it can be translated into other languages.  Spanish translation
provide by Julio Sangrador Paton.
- Bug fixes and speed improvements.

v1.1, May 5, 2002

- The raytracer now supports global illumination.
- Can now import and export Wavefront .obj files.
- Revised the inverse kinematics algorithm so that bones now move more
easily, and meshes deform more smoothly around joints.
- Added grids to the object editors.
- The object editors now allow you to view other objects in the scene,
and to work in either local or scene coordinate systems.
- Added procedural position and rotation tracks.
- Textures may now be applied to only the front or back surface of
a mesh.
- Added contextual popup menus on the item list in the main window, and
the list of tracks in the score.
- Added Frame Scene With Camera and Frame Selection With Camera commands.
- Added a preview to the Bevel/Extrude window in the triangle mesh editor.
- Added a 1D random noise module to the procedure editor.
- Revised the interpolating subdivision algorithm for triangle meshes so
that changing the smoothness of vertices now works in a more useful and
intuitive way.
- Lots of miscellaneous user interface improvements, including new keyboard
equivalents for lots of commands.
- Lots of bug fixes.

v1.0, Feb. 10, 2002

- Added Pose tracks, which allow you to animate the shape and other
internal parameters of objects.
- Adding a Pose track to a Spline Mesh or Triangle Mesh will convert it
into an Actor.  This allows you to create predefined gestures for the
object, which can be blended in arbitrary combinations and automatically
morphed between.
- Every Spline Mesh and Triangle Mesh now has a skeleton.  This can be
used as a tool for shaping the mesh (with forward and inverse kinematics),
and also allows morphing between gestures to happen in a more natural way.
- Added an Array tool (written by Rick van der Meiden) for creating evenly
spaced copies of objects.
- Position, Rotation, and Constraint tracks can now be relative to any
object (or, if it is a mesh, to any bone in its skeleton), not just to the
immediate parent object.
- Texture parameters can now be specified on a per-object basis, as well
as per-vertex.
- Added Texture Parameter tracks which allow you to animate the values
of per-object texture parameters.
- Texture mapping coordinates can now be bound to the vertices of a mesh,
so that the texture will distort with the mesh.
- The Move, Rotate, and Resize tools, as well as the Transform Object
command, offer new options to specify how they interact with parent-child
hierarchies and to set the center for rotation/scaling.
- The file format is now finalized.  This means that files created with this
version are guaranteed to be openable by later versions.
- Many, many bug fixes and other minor improvements.

v0.9, Aug. 25, 2001

Where do I begin?  This version introduces animation, which touches (or
will touch) almost every part of the program in one way or another.
- Each object may have any number of animation tracks, which are applied
according to their individual weight curves.  Current track types include
Position, Rotation (XYZ and quaternion), Visibility, and Constraint.
- The Score provides a user interface for viewing and editing tracks and
keyframes.
- A Preview Animation command allows you to quickly render and view
wireframe tests of animation sequences.
- Animations can be rendered to a series of image files.  Multiple
subframes per image can be used to create motion blur.
- Various bulk keyframe editing commands allow you to simultaneously
modify large numbers of keyframes at once.
- A Set Path from Curve command allows you to create animation paths
from curve objects.
- Any object can now be made a child of any other object by dragging it
within the Object List, which is now a hierarchical display.
- I have eliminated the Group and Ungroup commands.  They caused problems
for animation, and the parent-child relationships described above offer
a more powerful way of doing the same things.
- There are several new modules in the procedural texture and material
editor.  The most important of these is the Expression module (written
by David Turner), which allows you to enter arbitrary mathematical
expressions to be evaluated.  Others are Min, Max, Lighter, and Darker
(the last two also by David Turner).  In addition, the Cells module now
offers a choice of three different distance metrics.
- Added a "tolerant selection mode" in the triangle mesh editor.
- The Textures and Materials dialogs now allow you to import textures
and materials from files.
- Added Null objects.
- Thanks to Carmen DiMichele for the beautiful new icons!
- Bug fixes and miscellaneous user interface improvements beyond all
reckoning.

v0.8, April 5, 2001

- Added Raster renderer.  Features include: Gouraud, Phong, and Hybrid
shading methods; antialiasing; fog; bump mapping; displacement mapping;
and environment mapping.
- Added Lathe tool.
- Added Extrude tool.
- Added Skin tool.
- Added Boolean Modelling tool.
- Added lots of new commands to the triangle mesh and/or spline mesh
editors: Clear, Select Boundary, Extend Selection, Close Selected Boundary,
Join Selected Boundaries, Extract Selected Curve, and Invert Surface
Normals.
- All editing tools in the object editors now respect the mesh tension.
- Added a tool for moving vertices inward or outward along the local
surface normal.
- Any camera in a scene can now be specified as the viewpoint in a scene
window.  (Removed the "View Through Camera" command, which was no longer
needed.)
- In the "Align Objects" command, can now specify the precise coordinates
to align to.
- Lots of bug fixes and user interface improvements.

v0.7, Jan. 15, 2001

- Added a graphical editor for creating procedural textures and materials.
- Added displacement mapping.
- Can now save rendered images as TIFF files with transparency information.
- Assorted bug fixes, etc.

v0.6, Oct. 5, 2000

- Split the old "Material" class into two new classes: Textures, which
describe surface properties, and Materials, which describe bulk properties.
- Any Texture can now be used as an environment map.
- Added layered textures.
- Added per-vertex texture parameters.
- Completely rewrote routines for raytracing Materials to add support for
nonuniform Materials, Materials with internal scattering, and Materials
which cast shadows.
- Added "Ambient" and "Decay Rate" parameters for point lights and spot
lights.
- Implemented plugin API for procedural Textures and Materials.
- The usual crop of bug fixes, etc.

v0.5, July 15, 2000

- Added interactive rendering (wireframe, flat shaded, smooth shaded,
and transparent views).
- Replaced the old Line and Spline objects with a new Curve object.
- Added Spline Mesh objects.
- The VRML exporter now saves explicit normals for IndexedFaceSets.
- A few bug fixes and user interface improvements.

v0.4, May 3, 2000

- Rewrote the triangle mesh smoothing code to use subdivision surfaces.
This also involved many changes to the triangle mesh editor.
- Can now load and save scenes.  However, the file format is NOT final.
Later versions will NOT be able to open files created with this version.
- Material previews can now be rotated by dragging the image.
- Added a "solid" checkbox to the Set Material dialog.
- A few bug fixes.

v0.3, Feb. 18, 2000

- Added image mapped materials.
- Added bump-mapping to the raytracer.
- Rewrote the adaptive distribution raytracing code.  It now does a much
better job of figuring out when to send more rays, and can use up to 256
rays/pixel.
- Added spotlights.
- Added soft shadows to the raytracer.
- A huge number of bug fixes, optimizations, and user interface improvements.

v0.2, Dec. 23, 1999

- The raytracer can now directly render spheres, ellipsoids, and cylinders
without having to break them into triangles.
- The raytracer now supports antialiasing, depth of field, and
gloss/translucency effects.
- Added "Render Preview" command to the triangle mesh editor.
- Added automatic preview feature to the material editor.
- Rendered images can now be saved as JPEG files.
- Added a tool for creating circular and elliptical spline curves.
- There is now a "specular color" material property.
- Can now export scenes to VRML files.
- Many bug fixes and user interface improvements.

v0.1, Oct. 29, 1999

The first public release.  After six months gestation, a new program has
come into the world!

April 21, 1999

The very first line of code was written (in Vec3.java).
