AC3D Version history:
1.01 - optimized rendering for the 3d window - much faster than previous versions. added
light switch on 3d window ('l'). Optimised VRML output so files are smaller and run faster
in Webspace (uses IndexedTriangleStripSet instead of IndexedFaceSet for polys with 3 or 4
vertices). Fixed selection/negate selection. Fixed a bug with drawing cubes in Front-view.
You can now 'spin" the 3d object view. Fixed a bug with display of closed-lines.
changed Dive output so that objects and groups have local coordinates rather than
global. Changed Dive and VRML output so that there is no longer one toplevel
object.
1.04 fixed bug (crashed) when switching between some draw-modes. Fixed a bug in the
sphere creation routine (didn't like odd number of sides). Added Mesh (10x10 grid
of triangles) object - need to add UI to alter num squares and cols though... Added Disk
object. Fixed problem with shift selections - you used to be able to reselect
selected objects. Added splinize button - use only on a single line object - not fully
working.
1.05 got the spline surface working properly.
1.06 fixed bug is GL code which caused a crash sometimes.
1.07 added revolve around axis (to make those lovely taurus and bottle shapes). Lots
of non-visible changes and optimisations. Ported versions to Sun and Mac (although no
shading in 3d window). Changed the handling of the mousebuttons in 3d window.
Sun version uses X - perhaps I'll try Mesa GL in the future...?
1.081 added texturing to SGI version. Sun version generates and loads and saves texture
coors but no texturing is available.
1.1 Gouraud shading added (SGI only). Fixed fatal bug - crashed when
negate-selected used in object-select mode. double buffered X version.
Fixed some palette problems. Fixed error
on loading files (only showed up under Linux/gcc). Added Massive VR file output.
Fixed rgb in data files (was using bgr...) fixed vertex normals so they are in unit range.
Added resize handles. Added bounding box display in 3D window.
Fixed normals on primitive objects. Fixed GL window to redraw on expose. added double and
half buttons. Some palette editing functions added. Recalc normals after rotation and
moving of vertices. a few more bug fixes...
1.21 added a drawing grid. Added settings window. Save settings from first menu
-
saves windows sizes and positions as well as other settings. .ac3dprefs is
created in the current dir (allows you to have diff preferences for diff models).
Added "snap selected vertices to snap-grid". added snap objects to grid (select one
vertex in each object).
1.23 Fixed Massive output - there is no need to ungroup everything now. added snap
vertices to grid. added snap vertices together. added key shortcuts in orth windows
'V'-vertex selectmode, 'O'-object select mode, 'T'-tree selectmode. Loaded
objects are now selected.
1.25 changed VRML generation IndexedTriangleStripSet to IndexedFaceSet for
compatibility with VRML browsers ( IndexedTriangleStripSet is not in the VRML spec
but many browsers read it) added Separator{} around the whole VRML output. Loaded
objects are now selected properly (all subobjects weren't...).
1.26 added simple DXF geometry loading - please note that this is not fully tested
- I have no way of producing DXF files and have only tested the loader with a few
pulled from the net. It may not load the latest DXF files. Let me know if you have
trouble loading DXFs. If you have a spec for the latest DXF then please send it to
me.
Added triangle loading (each line in file has 9 floats, 3
per vertex) and a hex number signifying the rgb colour.
1.34 - fixed revolve so that end surfaces are linked properly.
now rubber-bands when drawing polys/lines. Fixed XOR problem on Suns .
Chucked out Motif.
added scrollable palette. Mesa renderer for Sun version. Cleans up groups
on delete properly now. Full material editing. A few optimisations and internal
changes. Fixed nasty bug in the AC3D-file loading. Corrected some bugs in
the Massive file generation. Optimised texturing on SGI version - much
faster now. Better texture handling and mapping functions on SGI
version. Added object fragmentation (split objects into single surfaces)
and merging of objects. Solved problems with Linux version. Adjustable handle
sizes in preferences.
1.40 - numbered palette buttons. texture coors are now per vertex-reference rather than vertex.
This means that the texture mapping is now better on 3D objects like cube
and sphere. objects now again rotate about the mouse pointer rather than the centre of the object.
space now centres windows AND resets zoom. fragment now creates toplevel objects - each one a sepatate surface
fixed the file dialog. added "save settings" button to settings window. reorganized the palette-edit window
.
"save settings" now saves position of contol panel window. replaced cone with cylinder.
snap vertices together now moves all selected points to the points centre of gravity.
Fixed crash when trying to load non rgb files for textures.
1.41 - discovered a bug in cylinder object when porting to sun - contained
surfaces with no vertices.
1.42 - fixed snap vertices together. Disk objects had an extra vertex - removed
it.
1.43 - fixed some dive bits. If no transparency is set then no transparency is
generated. Dive output wasn't using texture repeats for texture coors - fixed.
1.45 - switchable Texture and normal support in VRML output. RenderMan output.
+-10% scale buttons. Switchable 3D axis display in 3D window (on sgi version).
Fixed some memory leaks. Fixed garbage collector problem - was freeing objects
too many times. surface->subdivide now splits quads into 4 and triangles into 3.
Added 'make hole' function for making holes in surfaces - adjustable hole size
from settings window. Spheres and grids can now be made from triangles or quads.
Default sphere is now quads (change setting on settings window) GL-renderer now
renders lines in one single colour (no shading).
1.47 - fixed problem with lines being drawn on the wrong colour. Lots of memory
and speed optimisations. Some work on Undo - but don't rely on it too much, it
still needs a lot of work.
1.48 - fixed 'snap object vertex pairs'. Selection is now preserved
when changing selectmode. 'Insert Vertex' added. Fixed fatal bug in the create
poly/line object function.
Fixed memory leak in surface subdivide. Fixed memory leak in sphere.
Fixed simple trianulate - was leaving original surface behind. xor'ed line
are now dashed - makes rotates easier to see. Made ui sensitivity better.
Added POVray output. Triangulate now does convex polys and recurses properly.
Window zoom now zooms about centre of window properly (was wrong on Plan and Front
views).
1.49 - some quick bug fixes: some numbers in the saved AC3D files were wrong - this
is because I shortened some of the integers to shorts and some to bytes. It meant
that object type numbers and numvert where wrong. Also fixed bug in Disk and
Circle objects where some numbers of subdivisions could cause incomplete revolutions.
1.5 there was a bug in the last version - cloning objects (using
duplicate) did not copy the number of vertices. This means that the .ac file saved
will have the number of vertices set to zero. Fixed problem with translations
in RenderMan files. Renderman output now outputs the surface normal for each
vertex of a flat shaded surface. 'Optimize surfaces' now removes polygons
with only 2 vertices as well as surfaces with only 1 vertex.
1.55 - fixed the problem with no keyboard focus under Fvwm - Fvwm is
strict in adhering to some X guidelines (no other window managers were) It just
involved changing a window-manager hint. Added grid object. Fixed bug in
copying object-data(dive data) when duplicating objects. Object centres are now
mirrored with mirrored objects. Added object visibility (at last you are
able to edit complex scenes). Added 'goto' centre view/s about selection.
Added 'fit view/s' - fit selection into view/s. Added Lightwave object
importing. change the preferences system so that preference file is stored
in home dir and is pure text (editable). Some UI changes. Stopped crash
when >1 mouse-button pressed and dragged. Added walkabout 3D mode on OpenGL/GL
versions. Fixed bug in 'ungroup' - caused crash on some machines (was freeing same
addr twice). Some changes to DXF import code - now loads separate objects.
added switchable grid in 3d window.
1.55a Fixed problem in Solaris version - removed bcopy
1.56 - fixed 'Insert vertex' so that it works on lines (was joining
start and end, and failed if line had 2 vertices). Added 'cut-away object' - makes
a new object from selected surfaces. Changed Renderman output to ignore polygons
with one or 2 vertices. Added 'Display' line to renderman output.
1.58 - fixed X server crash on some SGIs (prob with XFillRect outside window)
Fixed expose problem - was not refreshing when window moved up/down. New
rectangles are positioned correctly using the 3D cursor now. Degrees of
revolution now ajustable via settings. File format overhalled - much more
compact. Fixed bug in Optimize-surfaces - surface count was incorrect if some
surfaces were removed. Fixed crash where first click of drawn poly/polyline/line
was with mouse button 2 or 3. Removed UNKNOWN_SHAPE_TYPE lines from ShapeHints
in VRML output (was causing VRWeb to crash). Degenerate triangles are now ignored
when generating POVray. Length of line now displayed when drawing edges. if
2 vertices are selected then distance between them is shown. POV output - polys
are now automatically triangulated. triangulation of concave polys working now.
Light can be postioned in prefs file. Iconized windows not drawn into. 'Render'
menu item added - command configured from settings. Optimize vertices now
removed duplicate surface references. Surface-type menus items moved to buttons
on control panel.
1.58a - fixed crash which happened after deleting an object and moving the mouse
into the object-name textfield.
1.58b - removed the 'import vrml' menu item - sorry, no code was attached, it was
just for testing.
Beta version - search pattern in file dialog is now matched case insensitive.
fixed fatal bug caused by deleting stuff after loading an old format file and
changing the select mode from tree or object to vertex - delete was trying
to delete the same vertices more than once. added triangle saving. added simple
lights. Added balloon help. Added size-to dialog. VRML output
overhalled. Added simple text from text.
font objects defined in AC3D file. X cursor can be changed in prefs file.
optional wireframe moving for 3D window.
Added 'Select by name'. Switchable headlight. Fixed revolve problem where a
vertex lying on the axis caused invalid surfaces to be created. added FOV
control for 3D window. SGI version - right control key now works for tilt in 3D
window. RIB files - polygons with > 4 points are automatically triangulated on
output. Added simple Bevel function.
1.66: overhalled the internal command system - may be useful for macros later.
Window titles can be changed in prefs file. VRML2.0 output added.
output "ReverseOrientation" before polygons on rib file - Renderman wants
polgons in clockwise order, AC3D was generating anti-clockwise. Undo button now
displays what it will undo when pressed. Normals now calculated after importing
DXF file. added Move-to. position is shown if size selected is zero.
SPline function moved to Surface menu (from Object) - individual surfaces can now
be splined. output of header in rib files is now switchable via settings.
Negate select now works with shift-button3 as well as shift Button2 - easier for
users with two button mice. coors now shown when drawing line/poly before
first point. fixed crash when other draw mode is selected whilst drawing
line/poly. Fixed lightwave loader on linux - it was wrongendian. added font
path name edit to prefs. Fixed crash in Optimize functions.
1.7: Reversed surfaces in Cylinder when drawn in XY window (was
inside-out). Made no spinning in 3D window the default. SGI version is
now CPU-friendly. Added missing internal command "set_no_texture". Many changes to make
code portable to Windows/NT. Renamed default window names (now Front, Side, Top
rather than (Side, Front, Top). Added Undo to some more operations.
Preferences file saved in user profile (under WindowsNT). Fixed bug in Optimize
Surfaces where extra vertices where being wrongly deleted.
1.79 (minor release to registered Linux users): added pov file header option. object data can now be used
to add pov commands to objects (switchable in settings). Added centering of 3D view
about selection and cursor. Fixed 'fit' function, sometimes it was incorectly
fitting to the size of window (when two dimesions of the bounding box where the
same). Added 'fit all'. fixed dragging of zero width
bounding boxes (i.e. one vertex) to display small cross at vertex position (was
previously no feedback). Stopped resize handles working in extrude mode.
Mouse pointer now changes over handles. VRML shininess is now correctly output
as a float between 0.0 and 1.0. Fixed fatal bug in object->merge. Simple VRML
loading added. 3D studio file loading added. added unselect-by name.
Added background images for orth windows. Added undo for insert-vertex and
snap functions.
1.79 minor release to registered Linux users
1.84 Chucked out glut - UI is now all TCL/TK. All windows are now sub-windows of a main
window. Big reorganisation of user interface. added recalc-normals switch -
makes manipulating large models much faster. Added 'surfaces->change vertex order'.
Added rotate-about-object-centre switch. Fixed bug to stop wonky background images.
Next: fixed bug in surface->spline - vertex count in object was wrong.
Faster texture mapping. Model info now in a window rather than printing to
the console. Fixed background images problems - texture mapping can now be used
instead of PutImage (faster on some machines). added a rubber line for move
and extrude. Fixed bug in rib files - window size was wrong. object data can
now be used in RIB files with switch in settings. Fixed problem where doing an
undo on adding an object then selcting the object name window would cause crash.
Fixed bug with Duplicate from menu - window ID was screwy. Fit-all now knows
if only one view is the current window setting. Dialogs are now children of
mainwindow - so they iconize when it does. Killing the file dialog does cancel
instead of OK. killing the main window calls quit function instead of just
exiting.
1.85 fixed fault in the way keysyms where decoded - was not portable. Fixed
the correct menu to update with 'save filename.ac'
1.87 - texture repeats are now output in VRML2 files.
Texture repeats are now editable floats rather than integers. changed default
for output of VRML normals - the default setting is now FALSE.
turned transparency back on (had commented out some code when testing some
texture stuff!). Pictures used for background images on windows can no longer be
directly used as textures.
1.87b - fixed SGI version so it runs with OpenGL 1.0 and 1.1. Fixed bug in
static tcl initialisation on SGI version.
1.87c - more SGI probs sorry. I think I used the wrong version of 'strip'.
1.94 - 3DS objects are now fitted to the views after import.
object selection/deselection now possible in 3D window (with CTRL down).
frames are now resizeable. Fixed bug is VRML2 texture repeats - texture repeat
line was not output if one of the values was 1. Selection of objects is now
possible in orth windows by clicking on or near a line. Removed grab from
move-to and size-to windows. added a comment where a texture would be in a POV
file. Fixed bug in loading background images - uninitialized variable would
sometimes cause the op to fail. fixed file dialog on Unix versions - you can
no longer press OK when there is not file selected. added some mouse controls
to 3d window for walk mode. Spinning (in spin mode) fixed. Fit-all now
works correctly if nothing is selected. Some rearranging of file and edit
menus. Fixed prob with Edit object data and undo - was not refreshing after
the undo. 3D window is now redrawn after texture-coors are mapped on surfaces.
The material-edit window is now parented by the main window. Lights can now
be hidden. solid is now false in vrml2. Lights are now output in VRML2. Crease
angle is now 0.5 in VRML2. VRML2 texture names now have file:// before them.
Exception handling added to windows version. Load/save paths are no longer
reset in windows version, separate paths tracked for files/textures.
Plugins interface works on all platforms. Plugins for texture files and
model file import/export.
1.94a - fixed problem with menu bar not showing on unix versions.
1.95 - fixed problem with texture loaders not working and alt key not working
in walk-mode under unix versions (windows version was OK)
1.95a - recompiled the linux version under Slackware 3.1. Previous 1.95 didn't
run on some linux boxes (that was compiled under Slackware 3.3)
2.0 - added key_rotate_degs_3d to prefs (so you can adjust the degrees
of spin for key control in 3d window). Fixed problem importing some 3D studio
files. normals are now only calculated on objects loaded in - rather than the whole
world. added Alias .tri file importer. Fixed problem when an objects centre was
at the origin and the object was in a group - the location wasn't saved.
Control-D now calls Duplicate like it should have. A texture loaded with the
same name now replace the previos one (rather than being ignored).
added object->explode. added cut/copy/paste. added toggle for selected vertices
display. Moved edit-object-data to tools menu. 2D and 3D convex hulls can now
be made from a selection of vertices (Surface->Create surface/object).
Reworked the way plugins are loaded - should stop the previous bug where tcl
crashed because one tcl_command was run inside another. added some more
plugins. added some toolbar buttons. Gif texture loader now incorporated into
main program and working on all platforms. stopped dialog when socket was
disconnected. Fixed VRML2 Anchor output.
2.0a - version compiled slightly differently for Linux only - to fix some library
problems.
2.5 beta 7 (Windows version released to registered users only)
- Fixed bug where you could group in vertex mode using the hierarchy window.
Fixed bug in extrude code where multiple extrudes were badly spaced. Fixed bug
in create-object/surfaces where AC3D would crash if >1 vertex was in the same
position and the selected vertices were in a plane. Fixed bug where holding
left and right mouse buttons down caused 3d view to always go to wireframe and
stay there. Fixed a fatal bug in fragment. Some work with texture names (to
not save the full path if the texture is in the same dir as the .ac file).
Fixed bug in tokenizing function inside loading AC3D files
(to count linefeeds same as returns). Transparent gifs now handled OK
(appeared corrupt previously). Improved VRML1 loading (now handles
rotations/translations and highlevel sphere, cubes and cylinders). Much
improved 3DS loading - loader now loads bindings into separate objects,
allowing texture-mapping to work. Fixed VRML2 output where shininess is now a
float 0.0->1.0 rather than the previously incorrect 0-128. Walkmode using the
mouse to navigate now 'flies'. Added VRML2 proto output where objects are
put in individual prototypes that can be used from an external file. Direct X
export plugin by Shawn Hakl. OBJ import plugin. OFF import plugin. Fixed bug
where pressing 'g' when mouse was outside window caused crash later (invalid
window id passed to 'goto_selected'). Middle mouse button now drags 2d views
and (with control pressed) zooms them (can be turned back to original
functionity by setting middle_button_drags_view FALSE). middle mouse button
moves 3d view around (in spin mode). Position and orientation is now saved
when switching between walk/spin mode. 'w' key is now a toggle for
wireframe/filled (in 3d view). f is now used to take 3d view to the selection.
added tools->replicator. Added edit->rotate. fixed undo for resize where one or
more of the dimensions was resized to zero and wouldn't revert with the undo.
Version 3.0 -
corrected fault in VRML1 parser where the first node in a seperator was ignored.
First field in move-to/size-to/rotate/scale dialog is not set to main focus when
displayed. Paste now moves the new stuff one snap-grid unit (so it's not
over the original geometry). Fixed translation/rotation/scale problem in VRML1
loader. Settings are now automatically saved when exiting the program. Load/save
and texture dirs are remembered. Fixed problem with texture offsets getting
corrupted. Expressions can now be entered in the move-to/size-to/rotate dialogs.
Control-S now correctly saves the model with the last saved file name (like it said it
would on the menus). Modified VRML2 proto output so that multiple shapes are put
in a group.
Version 3.0a - Linux only - Mesa 3.2 contained bugs in the tesselation code - this
caused AC3D to sometimes crash when tesselating polygons. This version is simply the
same code compoiled with Mesa 3.2.1.