What was new (see "News" for infos on
latest version) :
This page lists all changes that occured on GLScene since v0.5, when I (Eric Grange) took over the development of the library, all versions prior to v0.6 were written and maintained by Mike Lischke and their history can be found here.
GLScene Changes from v0.7.2 to v0.7.3
: (07/03/2000)
- Massive changes to Geometry.pas, many renames and additions (including faster replacements for Borland's 'math' unit), asm-level FPU and 3DNow! optimizations. New set of 'procedure-based' routines for speed improvements of up to 400% over traditionnal 'function' variants. Don't be fooled by the increased size of the '.pas', compiled code is now smaller & faster.
- NEW : GLScene Sound System (GLSS), easy-to use positionnal 3D sound support for your scenes, comes with sound-library component, wave-out (non-3D) and FMOD drivers (see http://www.fmod.org), as well as a sample (install GLSS_FMOD5.dpk (Delphi5) or GLSS_FMOD4.dpk (Delphi4) package to enable the FMOD driver).
- NEW : TAnnulus, to render hollow cylinders and pipes (contributed by Aaron Hochwimmer).
- NEW : Basic support classes for collision detection (only sphere-bounding is supported yet).
- Delphi 4 support (use GLScene4.dpk) for samples/demos too.
- TActor can now perform smooth frame interpolation and has more animation options, Carlos A. Rivero contributed the "Actor" sample (how to display and animate a Quake II .md2 model). Check www.planetquake.com/polycount,
they have a large collections of models.
- TFreeForm can now flip normals (better compatibility with non-standard 3DS files).
- Enhancements to TMesh and TVertexList (memory management), which moved to their own unit.
- LightSources can now be set to "parallel".
- OpenGL12 unit and GLScene now have full dynamic OpenGL binding support (see header for details).
- Some more fixes for RenderToBitmap/RenderToFile and SpaceText.
- Enhanced help-file (HTML Help) with property documentation.
- Enhanced all early samples and demos that were not properly showcasing the use of TGLCadencer.
- Many fixes and additions throughout all of GLScene, see file headers for details (thanks all who helped).
GLScene Changes from v0.7.1 to v0.7.2
: (05/28/2000)
- Delphi 4 support (use GLScene4.dpk), some
experts/property editors are disable in Delphi 4
- WARNING : some functions and procedures in
Geometry have been renamed (fixed orthograph of
VectorSubstract, made further use of overloads, etc.),
none has been removed (indeed, there are more functions
now).
- NEW : TLines, to draw 3D lines, segments
and cubic splines (contributed by Roger Cao), with
property editor.
- Completed TGLProxyObject, demoed in
"mushroom"
sample
- TMesh can now autocalculate normals for
TriangleStrips, added a math "formula" plotting
sample (triangle & trianglestrip)
- Ability to use InterleavedArrays instead
of IndexedArrays in TFreeForm, added "mushroom"
sample (how to load a 3DS file)
- Fixes for texture handling (TGLPersistentImage
& TGLPicFile)
- Class/methods basic help file (.chm)
- Added "transparency" sample to
explain blending in GLScene, Z-Buffer/blending use and
objects ordering
- GLSceneViewer RenderToBitmap/RenderToFile
now work properly (no more light/texture losses)
- Various fixes and enhancements, see file
headers for details (thanks all who helped)
GLScene Changes from v0.7 to v0.7.1
: (fixes release)
- Fixed nasty IDE bug : added objects would
be neither declared in source, nor properly recognised by
Delphi's IDE until open/close.
- Added TGLProxyObject : allows better &
easier sharing of ressources, adjusts its MasterObject
property and you've got a clone (no samples yet, quite
untested)
- Added support for categories of objects (objects
are now sorted in different submenus)
- TAsyncTimer in v0.7 was still using the
old code, this is now fixed
- Various fixes and enhancements, see file
headers for details (thanks Roger Cao, Mike Lischke,
Nelson Chu, Carlos A. Rivero, Gary Clark, James Burroughs...)
GLScene Changes from v0.6 to v0.7
:
- Added support for Behaviours (TGLBehaviours/TGLBehaviour)
in TGLBaseSceneObject, with accompanying IDE expert.
Behaviours are a stepping stone for more goodies to come
(particle systems, flyby, drop-on-floor, force-fields...).
- Added TGLParticles, the Particle System
component, with accompanying samples (in sprites/particles
and bench/whirlwind). Features visual-design, unlimited
particle count, automatic particle pool management,
parenting support (a particle can be a single object or a
structure that may contain any objects (including
particle systems)) and more.
- Added the first behaviour, "Simple
Inertia" (handles translation/rotation speed,
acceleration and damping) with its "torque"
demo.
- New utility component : TGLCadencer, a
step toward point-and-click only animation with GLScene (see
screen-saver sample: things move without a single
animation-related line of code in the saver's main form).
- New utility component : TScreenSaver (make
screen-savers in a snap!), comes with a full-featured
sample screen-saver with preview and GLScene-based config
dialog (the component can be used without using GLScene).
- New classes : TXCollection/TXCollectionItem
(can be used without GLScene) with IDE expert, similar to
VCL's TCollection but with polymorphism support (allows
items of varied classes, base class for TGLBehaviours/TGLBehaviour
and other goodies to come).
- Fixed TJoystick component, it should now
behave properly (at least for a 2 axis, 4 buttons stick).
Added a Joystick demo.
- Added support for effects (per object, pre-
or post- object rendering, scene after-effects), these
are subclasses of TGLBehaviour with added rendering
abilities. No samples, untested.
- TAsyncTimer is now based on the
ThreadTimer code (by Carlos Barbosa) as suggested by
Roger Cao.
- Various minor additions and fixes, see
file headers for details (thanks Uwe Raabe for quadrics
and memory fixes and Jens Treichler for spotlights vector
recalculation)
GLScene Changes from v0.5.0 to v0.6
: (in no particular order)
Note for users of previous versions :
the version released here has been altered quite heavily, most
classes and components are still here, but most have been renamed
or rearranged and this package is not an incremental improvement
(neither is it a complete rewrite) : projects designed with
previous versions won't compile with this one, and you'll
probably have to manually modify DFMs to make them work. However,
this version is more stable, faster, uses less memory and has
more to offer. And since previous versions won't be supported, it
is highly recommended to migrate your applications. Incremental
compatibility will be provided from this point on.
- Requires Delphi 5 (may compile
under D4, but experts make use of D5's TFrame)
- Fixed (all ?) crashes (most came from bugs
in experts and OpenGL12.pas, other buggy objects have
been deactivated)
- Added a bunch of demos (heavily commented,
tutorial-style)
- Added new experts (color editor, material
editor, material preview, vector editor, material library
picker)
- Added and optimized many Geometry function
(mainly through better parameters support)
- Changed GLScene main objects names so they
begin with "TGL"
- Significantly reduced dependencies, EXE
size is now vastly reduced for a bare-bones GLScene
application
- Massive optimization of what is stored in
the DFMs (smaller EXEs)
- Fixed texturing (PersistentImage), added
full-polymorphic texture image data support
- Vector file objects, Joystick support have
been moved to separate units
- Added "Target" to TGLCamera so
you can point your camera to a particular object, also
added utility functions for moving a camera around its
target
- New objects : TDummyCube (for use as
camera target or composite object handler), TSprite (a
"plane" that is always facing the camera, for
use in particle systems, special effects or doom-like 2D
monsters :)
- Added AbsolutePosition calculation
functions, and depth-sorting for blended objects
rendering
- TSpaceText now allows for low-quality 3D
text (reduced poly count)
- Added ability to save/load scene or
material library to a file
- Added Progress event chain
- ...and many more (see headers in pascal
files for more details)