03ee77a315
explanations of how each of the classes operates.
446 lines
20 KiB
Plaintext
446 lines
20 KiB
Plaintext
|
|
OSG News (most significant items from ChangeLog)
|
|
================================================
|
|
|
|
Addition of osg::Texture1D, Texture2D & Texture3D classes, Texture2D becomes
|
|
the deprecates the original osg::Texture. All Texture class, including
|
|
TextureCubeMap are derived from new base class for textures - osg::TextureBase.
|
|
|
|
New osgtexture1D and osgtexture3D demos demonstrate the new texture classes in
|
|
action.
|
|
|
|
New PROTECTED mode for protecting local state mode and attributes from be
|
|
overriden from state above it in the scene graph.
|
|
|
|
Support for fog coord and secondary colors extensions added to osg::Geometry.
|
|
|
|
Support for HP_UX.
|
|
|
|
New Inventor and VRML1.0 loader added.
|
|
|
|
Support added to lwo plugin for loading the new lwo2 format.
|
|
|
|
Support for OpenFlight15.7 added, DOFTransforms and general enhancements and
|
|
bug fixes.
|
|
|
|
Improved osgbillboard example.
|
|
|
|
Improved osglight example utilizing AnimationPath and PositionAttitudeTransform.
|
|
|
|
osg::TexEnvCombine implemented texture_env_combine and texture_env_crossbar
|
|
and texture_env_dot3 extensions.
|
|
|
|
osg::TexEnv texture_env_add added.
|
|
|
|
osg::Sequence implemented, and osgsequence demo added.
|
|
|
|
osg::DOFTransformNode implemented.
|
|
|
|
osg::AnimationPath improved.
|
|
|
|
Support for writing osg::Image's to .rgb format added.
|
|
|
|
|
|
July 2002 - OpenSceneGraph-0.9.0.tar.gz
|
|
|
|
>>> OpenSceneGraph goes beta - Multitexturing, Occlusion Culling, Particles and much more added!
|
|
|
|
This release marks the beginning of the beta phase of the OpenSceneGraph
|
|
development, which means that all the major core features are now
|
|
in the scene graph, and 1.0 is not far away. Its performance, features
|
|
and portability already compares very favorably to other scene graphs,
|
|
both comerical and open source.
|
|
|
|
Multi-texturing support added to osg::StateSet, osg::Geometry, osg::State
|
|
and txp loader, so multi-texturing can now be done with very little coding
|
|
from the user - all you need to do is specify the texture unit to use
|
|
when setting texturing state and texture coordinates and the rest is
|
|
handled automatically by the scene graph!
|
|
|
|
The new osg::Geometry classes which supersedes the old Performer style
|
|
osg::GeoSet, support multi-texturing, and uses sharable osg::Arrays which
|
|
utilize std::vector<> for data storage and manipulation.
|
|
|
|
Shadow volume occlusion culling adding to the core OSG, developed as a
|
|
collobaration between Mike Connell and Robert Osfield. Our implementation
|
|
uses convex planer occluders, with support for holes to allow larger
|
|
and more effective occluders to be used. The approach is software
|
|
based so it 100% portable, and by culling during the cull traversal
|
|
both CPU and GPU loads are significantly reduced, making it an extremely
|
|
powerful feature for large scale urban and indoor visulisation.
|
|
|
|
osgParticle developed by Marco Jez adds support for a range of particle
|
|
effects such smoke, fires, engine plumes, fountains, fire works, and
|
|
is fully customizable to produce your own favorite effects. osgParticle
|
|
is a NodeKit (see below) which can be directly linked to in your
|
|
application to allow you to create particle effects by hand, or have
|
|
the library dynamically loaded in when you load a database which contains
|
|
particle effects.
|
|
|
|
osgGA (Gui Abstraction) library written by Neil Salter adds classes for
|
|
adapting different GUI toolkits to work with a standard set of manipulators for
|
|
modifying the scene, such as camera and state manipulators.
|
|
|
|
Support has been added to the plugin architecture to facilitate the
|
|
development of NodeKits - add on libraries which can used directly
|
|
in your code, or loaded indirectly when loading from file. The
|
|
later allows you to load a .osg file with text or particle effects
|
|
in them,the plugin architecture automatically loads the required
|
|
library which supports these features.
|
|
|
|
A range of new demos have been as code examples, and to demonstrate
|
|
the range of features that OpenSceneGraph delivers:
|
|
|
|
osgoccluder - demonstrates ocllusion culling, and has a mode
|
|
which allows the users to interactively create
|
|
their own convex planer occluders.
|
|
osghud - how to mix head up display with 3d views.
|
|
osgparticle - shows the new osgParticle node kit in action.
|
|
osgprerender - pre renders and scene then textures the result onto
|
|
an animated flag.
|
|
osgcallback - examples of the full range of callbacks that you
|
|
can use to add dynamic behaviors to your scene graph.
|
|
osglight - a simple example of how to set up spot and position
|
|
lights in the scene.
|
|
osgclip - illustrates how to add clip planes to you scene.
|
|
osggeometry - examples of the different ways to set up primitives
|
|
and vertex/color/normal and texture attributes in
|
|
the new osg::Geometry class.
|
|
osgmultitexture - a simple example which adds a spherical reflection
|
|
map to a whole scene using the second texture unit
|
|
if one exists.
|
|
|
|
osg::Drawable::PrimtiveFunctor has also been added to allow querrying
|
|
of primitive data with Drawables subclasses without requiring knowledge
|
|
of the types of Drawable subclasses that exists. This decoupling makes
|
|
it a very powerful and flexible utility.
|
|
|
|
|
|
26th April 2002 - OpenSceneGraph-0.8.45.tar.gz
|
|
|
|
>>> Support added for Solaris, texture cube mapping & muliple projections.
|
|
|
|
The OpenSceneGraph now has a new Makefile system which supports all Unix
|
|
compilation including the new addition to the family - Solaris!
|
|
|
|
OpenSceneGraph welcomes Solaris to the list of supported platforms. This
|
|
release puts all of the OpenSceneGraph functionality at the fingertips of
|
|
Sun Microsystem's customers and developers. Solaris users can now have
|
|
the benefit of a high performance scene graph for visual simulation,
|
|
virtual reality, scientific visualization, CAD, and architectural
|
|
walk-throughs. Many thanks to Sun for providing resources for the port.
|
|
|
|
Additional html documentation has been added to the distribution to
|
|
make it easier to get an understanding of scene graph technology and
|
|
the project itself and how to make use of it.
|
|
|
|
Support has also been added for OpenGL's texture cube mapping which
|
|
is ideal for accurate environmental reflections and much more.
|
|
|
|
The scene graph has been extended to allow multiple projection (via
|
|
the new osg::Projection node) and viewports within one scene graphs,
|
|
this makes it much easier to set up head up displays, and we have
|
|
an example to demonstrate how easy it is - osghud.
|
|
|
|
The osgUtil::CullVisitor and osgUtil::SceneView has been revamped
|
|
removing the dependency on osg::Camera, which is now simply an
|
|
option for SceneView rather than a requirement. This allows users
|
|
to set the camera entirely with the scene graph or create their own
|
|
camera classes and use them with SceneView. The existing osg::Camera
|
|
has also been simplified as support for setting projection and
|
|
modelview matrices have been moved out to the cull traversal.
|
|
|
|
Several sets of node callbacks have been added, including a Cull
|
|
NodeCallback on each Node, ComputeTransformCallback on Transform
|
|
Nodes, EvaluateLODCallback on LOD nodes, ComputeBillboardCallback
|
|
on Billboard nodes. These make it my easier to customize the
|
|
scene graphs behavior at runtime.
|
|
|
|
osg::Image::readPixels() and support for writing .bmp files has been
|
|
added which has made it easy to add screen capture the any OpenSceneGraph
|
|
application. This feature is demonstrated in the scene graph viewer
|
|
which comes with the distribution - just press 'O' to output a screenshot.
|
|
|
|
Finally, include/osg/MemoryManager has been added which overrides new
|
|
and delete for debug builds. The override new and delete track allocations
|
|
and deallocations, ensure they are matched, checked for memory under and
|
|
overruns, and outputs a memleaks.log file on the results of executing
|
|
your applications. This help track down a number of memory leaks and
|
|
unmatched new and deletes within the OpenSceneGraph and should make
|
|
it easier to do with users applications as well.
|
|
|
|
All in all, the OpenSceneGraph is now more portable, easier to
|
|
customize, cleaner and more robust. Beta release and 1.0 is now not
|
|
far away!
|
|
|
|
|
|
24th February 2002 - osg-0.8.44.tar.gz
|
|
|
|
>>> Support added for Mac OSX, Cygwin and MinGW, and new TerraPage loader.
|
|
|
|
The major item for this release is the completion of the Mac OSX port,
|
|
thanks to Phil Atkin and others for making this happen.
|
|
|
|
Also added to support for Cygwin and MinGW builds which gives Windows
|
|
users a free and robust alternative to the Visual C++, which we
|
|
have Norman Vine to thank.
|
|
|
|
Funtionality wise there has been a great deal of work behind the scenes
|
|
putting in place a flexible and extensible framework for handling
|
|
transform nodes, users can now extend the osg::Transform node through
|
|
subclassing or via callbacks. This work will underpin future work
|
|
on moving camera setup into the scene graph, and environmental effects
|
|
such as cloud layers, ground planes, stars and earth sky implementations
|
|
which are planned for the next release.
|
|
|
|
Callbacks and virtual methods have also been added to the osg::LOD &
|
|
osg::Billboard to allow users to customize their behavior. Draw
|
|
callbacks have also been added to allow customization of osg::Drawables
|
|
at runtime.
|
|
|
|
The Open Flight .flt loader has undergone a number of improvements
|
|
including support for instancing and billboards.
|
|
|
|
New TerraPage (.txp) loader and OpenDX writer (.dx) plugins have been added.
|
|
|
|
Support for the clone operation on osg::Object's has been expanded
|
|
to allow cloneType() - a simple clone an blank object of the same type,
|
|
and clone(CopyOp&) where CopyOp is a functor which allows users to
|
|
specify the deep copy vs shallow copying of object data.
|
|
|
|
|
|
2nd January 2002 - osg-0.8.43.tar.gz
|
|
|
|
>>> Support for TrueType text, Stereo out of the box, and much more.
|
|
|
|
Since the last release the OSG has moved to CVS based developments so
|
|
many users will have seen gradual increments in functionality and changes
|
|
to the API. Whereas a the leap from 0.8.42 to 0.8.43 is actually quite
|
|
significant is likely to require code changes as several significant parts
|
|
of the API have evolved to a more mature state.
|
|
|
|
The most significant new functionality is the addition of the osgText
|
|
library which provides support for true type font rendering, as textured,
|
|
polygonal, pixmap, bitmap and 3D fonts.
|
|
|
|
We now have new osg::Matrix implementation which cleans up its interface.
|
|
Also all angular paramters are now based on radians rather than degrees
|
|
as before (and as in Performer), this has been done to be more consistent
|
|
with the basic trignometric functions and standard maths conventions.
|
|
|
|
Scene graph optimization has been added which can boost performance
|
|
on some database by as much as an order of magnititude, this is
|
|
particularily noticable in .flt based databases. Display list performance
|
|
has also been boosted on NVidia based machines thanks to changing the
|
|
compilation and execution of display list into two seperate operations.
|
|
|
|
App callbacks are now supported on all Nodes, and there now a proper
|
|
app traversal which can be used to animate the scene.
|
|
|
|
Stereo support has been added into the osgUtil::SceneView which allows
|
|
quad buffered/anaglyphic stereo to enabled easily for almost all OSG
|
|
applications without code modifications - simple set environmental
|
|
variable or pass in appropriate arguments and your app will render in
|
|
stereo!
|
|
|
|
src/Demos/osgcluster has been added to demonstrate how easy it is
|
|
to set up a graphics cluster across a standard networked PC's.
|
|
|
|
There have been many minor code changes to fix bugs and address
|
|
performance bottlenecks or to improve extensibility was, representing
|
|
a significant step towards API maturity and a beta release which is
|
|
now not far away.
|
|
|
|
|
|
9th August 2001 - osg-0.8.42.tar.gz
|
|
|
|
>>> New osgWX library for integration of OSG with wxWindows apps.
|
|
|
|
This release sees a relatively minor number of enhancements over
|
|
0.8.41, the most significant being the new osgWX library and wxsgv
|
|
demo written by Ben Discoe.
|
|
|
|
Also from Brede Johansen in this release is the improvements in support for older
|
|
.flt (Open Flight) files such versions 12 & 13. Previously only version
|
|
15.6 files had been tested and developed to.
|
|
|
|
Last but by no means least, several bug fixes related to view frustum
|
|
culling have been made.
|
|
|
|
|
|
25th July 2001 - osg-0.8.41.tar.gz
|
|
|
|
>>> Support added for multi-pass and multi-stage rendering including Impostors.
|
|
|
|
The key feature developed is a highly flexible framework for multi-pass and
|
|
multi-stage rendering techniques. Unlike most scene graphs and games
|
|
engines the OSG has as dynamic framework which automatically configures
|
|
itself at runtime.
|
|
|
|
Building ontop of the new framework's multi-stage rendering capabilities,
|
|
support for Impostors (hirachical image caching) has been integrated into
|
|
the core scene graph library making extremely easy to take advantage of
|
|
this advanced rendering techinque - normally only seen in research papers.
|
|
Check out osgimpostor demo to see how easy it is to add osg::Impostor
|
|
nodes to your own models. Impostors are particularily effective are
|
|
reducing scene complexity whilest minimizing the visual impact, making it
|
|
ideal for scenes with large numbers of complex objects such as a city
|
|
scene, or a dense forest.
|
|
|
|
Taking advantage of the new framework's multi-pass rendering capabilities
|
|
is osgreflect demo which illustrates how to achieve planar relfections
|
|
using the stencil buffer and multi-pass rendering.
|
|
|
|
The cool thing about both the osgreflect and osgimpostor demos is that
|
|
there is no hardwiring to achieve the results, the scene graph stores
|
|
all the information neccessary to specify the number and type of rendering
|
|
passes, and the framework handles the rest behind the scenes. This also
|
|
makes it very easy to add these advanced rendering techinques to your
|
|
own applications as everything is cleanly encapsulated with
|
|
osgUtil::SceneView.
|
|
|
|
New loaders have been added to support .lwo (Light Wave), .obj
|
|
(Alias Wavefront) and .dw (Design Workshop) 3D file formats making it
|
|
even easier to compose your own worlds from models sourced from the
|
|
web or your own.
|
|
|
|
osg::Camera has been totally revamped and now supports asymetric
|
|
and othographics projections in addition to the symetrical perspective
|
|
projections.
|
|
|
|
And finally, support for texture subloading has been added to osg::Texture
|
|
and osg::Image. This allows textures to be updated dynamically, and
|
|
has already been used for mpeg video playback!
|
|
|
|
|
|
19th May 2001 - osg-0.8.40.tar.gz
|
|
|
|
>>> Project lead, Robert Osfield, makes full-time commitment to OSG.
|
|
|
|
This is the first full release since project lead, Robert Osfield, made
|
|
a move to pursue the OSG's development full-time. This commitment has
|
|
been made to bring the API rapidly towards maturity, and to provide
|
|
high quality support and consultancy services. Please contact
|
|
robert@openscenegraph.com if you have any queries.
|
|
|
|
This release marks a significant step forward in the maturity of the
|
|
API, with several major changes to the library in the areas of state
|
|
handling, database support, and portability.
|
|
|
|
To improve the extensibility of the OSG's handling of OpenGL state,
|
|
new classes have been introduced to replace the previous hardwired
|
|
state handling classes. The new classes also allow improved state
|
|
sorting and lazy state updating which boosts both cull traversal
|
|
and particularly draw traversal performance.
|
|
|
|
To improve the modularity, interopability and conceptual clarity the
|
|
support classes for database loading have been moved from the core
|
|
osg library into their own osgDB library. Support for the .osg
|
|
ASCII native database format and the .rgb reader has moved into its own
|
|
osgPlugins library to further the cleanliness of the core library.
|
|
|
|
Support has be added for multiple OpenGL context's and hence multi-pipe
|
|
systems such as sgi's Onyx2, allowing each context to have its own
|
|
display list and texture objects.
|
|
|
|
The culler and rendering support in osgUtil has also been improved, and
|
|
significantly speeded up for complex models.
|
|
|
|
Also just in, thanks to Randall Hopper for adding support for FreeBSD :-)
|
|
|
|
|
|
23rd March 2001 - osg-0.8.39.tar.gz
|
|
|
|
>>> Port of OSG to MacOS underway
|
|
|
|
The first steps towards support of MacOS have been taken by Bryan Woods,
|
|
adding Metrowerks project files and adding support for MacOS into the
|
|
core scene graph. Work still in progress so assistance welcome to
|
|
complete the task.
|
|
|
|
Other major developments have been the addition of two new base classes
|
|
osg::StateAttribute and osg::Drawable which are designed to allow greater
|
|
extensibility of OpenGL state management and primitives.
|
|
|
|
|
|
17th Feburary 2001 - osg-0.8.38.tar.gz
|
|
|
|
>>> New 3DS loader added
|
|
|
|
The OpenSceneGraph now supports the 3DS file format. This makes
|
|
available a huge range of potential models. Check out
|
|
http://www.3dcafe.com or http://www.3drocketfuel.com for some juice.
|
|
|
|
10th Feburary 2001 - osg_src-0.8-37.tar.gz
|
|
|
|
>>> Texture compression now supported
|
|
|
|
The OpenSceneGraph now provides support for ARB and S3TC texture
|
|
compression. This allows more textures to be loaded onto graphics
|
|
card memory, resulting in happier users and a better world in which
|
|
to live.
|
|
|
|
This release also sees the addition of a simple hang gliding flight sim
|
|
demo.
|
|
|
|
25th January 2001 - osg_src-0.8-35.tar.gz
|
|
|
|
>>> Anisotropic texturing now supported <i>and</i> loading of gzip compressed files
|
|
|
|
Anisotropic texturing provides for the next step in quality texturing
|
|
filtering above tri-linear and is especially effective when viewing
|
|
texture surfaces at shallow angles.
|
|
|
|
Also added in this release is on-the-fly support for loading gzipped
|
|
(.osgtgz, .tgz) and zipped (.zip) database files. This features allows
|
|
users to store whole databases (models and textures) in a single
|
|
tar ball and unpack them automatically on running the osg. This
|
|
is ideal for browsing the web.
|
|
|
|
22nd December 2000 - osg_src-0.8-33.tar.gz
|
|
|
|
>>> Support added for OpenGL vertex arrays, and several key image loaders.
|
|
|
|
Support for OpenGL vertex arrays has been added to improve performance,
|
|
particularly accelerating PC based graphics.
|
|
|
|
Also added is support gif, jpeg, pic, tga, tiff image formats via
|
|
dynamic plugins.
|
|
|
|
8th Decemeber 2000 - osg_src-0.8-32.tar.gz
|
|
|
|
>>> New high resolution, low latency timer class - osg::Timer.
|
|
|
|
Real-time graphics relies upon accurate timers for updating physics
|
|
simulations and managing constant framerates. The OSG now provides
|
|
osg::Timer which, when supported, takes advantage of hardware timers.
|
|
|
|
|
|
18th November 2000 - osg_src-0.8-29.tar.gz
|
|
|
|
>>> Support for detail drawing with osg::PolygonOffset.
|
|
|
|
Rendering of polygons which overlay underlying geometry, such
|
|
as white lines on a runway, can now be achieved utilizing the
|
|
new osg::PolygonOffset which encapsulates glPolygonOffset to
|
|
avoid z fighting which otherwise hampers such detailing.
|
|
|
|
10th November 2000 - osg_src-0.8-28.tar.gz
|
|
|
|
>>> New Open Flight .flt loader!
|
|
|
|
Thanks to Brede Johansen submission of .flt loader, the OSG can now
|
|
read Open Flight .flt databases.
|
|
|
|
3rd November 2000 - osg_src-0.8-26.tar.gz
|
|
|
|
>>> Driving and Flight modes have been added to viewers.
|
|
|
|
osgUtil::DriveManipulator and osgUtil::FlightManipulator have been
|
|
added to allow the scene graph viewer (sgv) and other viewers to
|
|
support a drive and flying modes. These modes can be accessed
|
|
in sgv by pressing '2' and '3' respectively ('1' returns to
|
|
trackball manipulator). Left mouse button accelerates forward,
|
|
middle stops motion and right deccelerates.
|
|
|