870 lines
44 KiB
Plaintext
870 lines
44 KiB
Plaintext
OSG News (most significant items from ChangeLog)
|
|
================================================
|
|
|
|
2nd October 2003 - OpenSceneGraph-0.9.6-2
|
|
|
|
>>> osgFX Special Effects nodekit (for bumping mapping & cartoon effects etc), support for double Matrix traversals,
|
|
>>> improved build support, thread safety and robustness.
|
|
|
|
The new osgFX nodekit, written by Marco Jez, adds a set of decorator
|
|
nodes that add can be conveniently added above subgraphs in your scene
|
|
to add special a range of special rendering effects. Effects include
|
|
AnisotopicLight, BumpMapping, Scribe, Specular Highlights and Cartoon
|
|
rendering.
|
|
|
|
Support for double Matrices has been added with the new Matrixd class,
|
|
and complimented by the a Matrixf class. The original Matrix class is
|
|
now a typedef which can be set to either Matrixf or Matrixd (which is
|
|
now the default), When the Matrix typedef is set to Matrixd and the OSG and
|
|
dependent apps are recompiled all internal operations such a cull traversals
|
|
will now be double with double matrices which much improved numerical
|
|
precision, making it ideal for datasets where a large values are contained
|
|
with transforms in the scene graph (such as with whole earth databases),
|
|
and when a transforms are nested which creates requires concatenation of
|
|
a number of matrices to get the final model view matrices.
|
|
|
|
The osgGA::MatrixManipulators (which are used to control the camera
|
|
position) and osgProducer/OpenProducer have been moved across to using
|
|
exclusively double Matrices. This has been done to improve numerical
|
|
precision when computing camera positions, whilst having little impact
|
|
on performance since camera operations are only done a small number of
|
|
times per frame.
|
|
|
|
osg::Quat now supports doubles by default, but also allows users to select
|
|
float version osg::Quat simply by changing the osg::Quat::value_type typedef.
|
|
|
|
Work has been on OpenThreads and OpenProducer, in particular to improve
|
|
thread safety and robustness on the Win32 platform. Reported crashes
|
|
on exit from osgProducer::Viewer based apps, and freezes during runtime
|
|
have been fixed.
|
|
|
|
Threading problems which caused crashes in recent updates of the Terrapage
|
|
loader have also been fixed, and additional internal changes have been made
|
|
to improve the Terrapage loader's ability to hit constant frame rates.
|
|
Support has also been added for loading light points directly from the
|
|
Terrapage database.
|
|
|
|
A new .iv/.wrl loader plugin, written by Vivek Rajan, at Magic Earth,
|
|
has been added to the distribution which uses with OpenInventor or Coin
|
|
to load model, converting them into OSG equivalents. Coin has support
|
|
for VRML97 models, so can be used to import such models into the OSG.
|
|
Since the new plugin is dependent on OpenInventor or Coin the compilation
|
|
is optional, but off by default. To compile this plugin under Unix, set
|
|
the environmental variable USE_INVENTOR or USE_COIN and recompile.
|
|
Windows .dsp project file does to current exist, but should be
|
|
possible to add this.
|
|
|
|
The .ive plugin has been improved with the addition of support for
|
|
osgSim light points, and various internal refinements to make it function
|
|
better on the various platforms supported by the OSG. Note, these changes
|
|
mean that the .ive format has has changed and is no longer compatible
|
|
with previous version of .ive. It is recommend that one recreates .ive
|
|
for the original source via osgconv or similar to ensure consistency.
|
|
|
|
A JPEG2000 image plugin has added, written by Michael Gronager. The new jp2
|
|
plugin uses the japser open source project to read and write JPEG2000 files.
|
|
|
|
A scalar bar, and sphere segment helper classes have been added to osgSim,
|
|
the new osgscalarbar and osgspheresegment examples demonstrate how to use
|
|
these new features.
|
|
|
|
To help handle running applications of graphics cards/drivers that exhibit
|
|
bugs with certain OpenGL extensions, support has been added to the GLextensions
|
|
code to allow extensions to be disabled via the new
|
|
osg::setGLExtensionDisableString(std::string) function or by setting an
|
|
OSG_GL_EXTENSION_DISABLE environmental variables. Follows is an example of
|
|
the disable string:
|
|
|
|
set OSG_GL_EXTENSION_DISABLE =
|
|
"ATI:GL_SGIS_generate_mipmap;Sun:GL_EXT_texture_filter_anisotropic:"
|
|
|
|
New examples include:
|
|
|
|
osgforest - an example which demonstrates simple techniques for creating forests
|
|
osgfxbrowser - an example which demonstrates the various osgFX Effects available
|
|
osgscalabar - an example of how to set up the osgSim::ScalarBar.
|
|
osgspheresegment - an example of how to set up the osgSim::SphereSegement
|
|
osgpagelod - a very simply test program for setting up osg::PagedLOD/osgDB::DatabasePager
|
|
|
|
23rd July 2003 - OpenSceneGraph-0.9.5
|
|
|
|
>>> Support added for OpenGL2.0 shaders, native multi-threaded Database paging,
|
|
>>> high peformance binary format reading and writing, .dds compressed image
|
|
>>> loader and ARB_fragment_program and ARB_vertex_buffer_object extensions,
|
|
>>> improvements to the Terrex .txp and OpenFlight .flt loaders.
|
|
|
|
The key new features of the 0.9.5 release are the new OpenGL2.0 nodekit, constant frame rate
|
|
database paging support, classes, and the new native .ive binary plugin which supports
|
|
both reading and writing of all core osg nodes, including inlining of compressed
|
|
and non-compressed imagery.
|
|
|
|
The native database paging support, provided by the new osg::PageLOD and osgDB::DatabasePager,
|
|
achieves constant frame rate through threading of the database reading, and time based
|
|
incremental compile and delete of display lists, vertex_buffer_objects and texture objects.
|
|
A new TextureObjectManager class also caches a list of expired texture objects for reuse,
|
|
and allows new newly loading imagery to reuse expired texture objects, with the imagery
|
|
automatically subloaded to the reused texture objects. This reuse happens transparently
|
|
and benefits other OSG usages such as the OSG's Terrapage loader.
|
|
|
|
To provide support multi-thread operation of the OSG, such as multi-thread database paging
|
|
and multi-threaded, multi-window graphics enabled by OpenProducer, the OpenSceneGraph and
|
|
OpenProducer have now adopted the OpenThreads threading library, osgDB and osgProducer now
|
|
depend upon it. OpenThreads is open source, light weight, cross platform C++ threading
|
|
which encapsulates the low level, platform specific threading API calls. Currently pthreads
|
|
under Unix and Win32 threads under Windows are supported, with Sgi sproc threads to be
|
|
released very soon. The OpenThreads project website can be found at http://openthreads.sf.net.
|
|
|
|
The new .ive binary plugin was developed by Uni-C's VR-Center, and kindly submitted as
|
|
open source, adds support for binary reading and writing OSG nodes drawable and state
|
|
(including compressed/mipmapped) textures. The .ive format produces a much faster
|
|
load times and smaller file size then native ASCII .osg format. Load times for .ive
|
|
files are also 10-20x faster then equivalent OpenFlight .flt and load in an already
|
|
optimized scene graph form making it much more suitable for paging. Files can be
|
|
converted easily using the osgconv utility : osgconv myfile.flt myfile.ive
|
|
|
|
The new osgGL2 nodekit library adds support for the OpenGL2.0 vertex ProgramObect and fragment
|
|
ShaderObject's recently ratified by the OpenGL ARB, . The osgGL2 uses the extension have local
|
|
prototypes which allow them to be compiled even in the absence of OpenGL headers that don't
|
|
support the GL2 extension, allowing to port to all platform, and at runtime the extensions are
|
|
queried for and used if available. At time of release only 3DLabs WildcatVP series supported
|
|
this extension at runtime, but other graphics cards and manufactures will be releasing GL2
|
|
extension very soon and will be automatically supported by osgGL2. The osgGL2 was developed
|
|
by Mike Weiblen at 3DLabs whom have kindly submitted osgGL2 as open source and for inclusion
|
|
with the OSG distribution.
|
|
|
|
The ARB_fragment_program, ARB_vertex_buffer_object and ARB_vertex_program attributes are
|
|
also now supported in core osg library. The new osg::FragmentProgram state attribute
|
|
encapsulates the ARB_fragment_program which is supported by the recent graphics cards
|
|
from NVidia, ATI and 3DLabs. Support for ARB_vertex_buffer_object and ARB_vertex_program
|
|
attributes have been added to the osg::Geometry class. The ARB_vertex_buffer_object extension
|
|
can boost performance by as much as 50% when working on geometry bound data sets.
|
|
|
|
Two new image loaders, dds and pnm, and a 3dc point cloud have been added. The .dds plugin
|
|
adds support for compressed & mipped mapped imagery, making it ideal for applications where
|
|
large texture sizes or database paging is required. The pnm image loader reads the
|
|
pnm, pgm and pbm image formats. See http://netghost.narod.ru/gff/vendspec/pbm/ for details.
|
|
|
|
The Terrapage .txp plugin been updated to include support for multi-texturing, layers and billboards
|
|
and includes improvements to multi-threaded pager, which has also been ported over to use OpenThreads.
|
|
The OpenFlight .flt plugin has also been improved and now support detail textures via multi-texturing.
|
|
|
|
TessellationHints now supported by ShapeDrawable which allow the shape primitives to be rendered
|
|
are vary levels of detail.
|
|
|
|
Supported has been added for auto scaling and rotating text into osgText.
|
|
|
|
Five new examples have been included in the distribution:
|
|
|
|
osgtexturerectangle illustrates how to use the osg::TextureRectangle which encapsulates
|
|
the NV_texture_rectangle extension.
|
|
|
|
osgprerendercubemap illustrates how to use pre rendering imagery to osg::TextureCubeMap
|
|
for tasks such as building a environmental texture maps.
|
|
|
|
slideshow3D is a presentation tool which use a scene graph to store a render set of slides, each
|
|
slide containing layers which can contain bullet points, paragraph, imagery and 3d animated
|
|
models - and is effectively a 3D power point. The presentations can be built separately and stored in a .osg file or created by
|
|
slideshow3D via an xml file, two examples - introduction.xml and models.xml, which are included
|
|
in the OpenSceneGraph-Data-0.9.5 data distribution. slideshow3D depends upon libxml2 for parsing
|
|
the xml files.
|
|
|
|
osgpoints uses the osg::Point state attribute to attenuate and control point size and any points
|
|
loaded by the application. This is a useful way of visualizing point data clouds.
|
|
|
|
osgdemeter is example of how to integrate the Demeter, OSG using osgProducer::Viewer as a viewer
|
|
class. This example depends upon the demeter terrain engine, which can be download from
|
|
http://www.terrainengine.com.
|
|
|
|
Camera style convenience set and get methods to osgUtil::SceneView, consolidating
|
|
previous functionality that was provided by both osg::SceneView and osg::Camara into one place.
|
|
This move has made osg::Camera redundant so has it been removed to avoid confusion,
|
|
usage inconsistencies and bloat of core libraries.
|
|
|
|
The long time deprecated osg::GeoSet has been removed, to aid migration of old .osg datasets
|
|
osgconv has a copy of GeoSet and the .osg support for it so is able to convert any remaining
|
|
.osg database which contained GeoSet's.
|
|
|
|
|
|
|
|
28th April 2003 - OpenSceneGraph-0.9.4-2
|
|
|
|
>>> Multi-threaded, multi-pipe support via integration with OpenProducer,
|
|
>>> 64bit Linux support for Intel Intanium and AMD Opteron,
|
|
>>> new osgText library with greater performance, and thread safety,
|
|
>>> new DDS plug-in for compressed and non-compressed images,
|
|
>>> new MD2 plug-in adds support for animate Quake character and
|
|
>>> support added for NV_texture_rectangle.
|
|
|
|
The most significant new feature is the osgProducer library that adds
|
|
tight integration with OpenProducer, providing the OpenSceneGraph with a
|
|
scalable, configurable and portable framework for developing real-time
|
|
and interactive graphics applications. The scalability afforded by
|
|
OpenProducer allows applications to be developed which run seamlessly
|
|
on single pipe machines up to multi-pipe machines such as Sgi Onyx
|
|
IR system, and Sun Zulu systems.
|
|
The osgProducer/OpenProducer framework automatically handles the
|
|
multi-threading of cull-draw pairs and GUI events.
|
|
|
|
All the example programs have been ported over from being based on
|
|
GLUT to using osgProducer (osgGLUT can now be found in the bazaar
|
|
section on the website). The move to osgProducer allows all the examples
|
|
to scale from running on laptops up to multiple CPU and graphics pipe systems.
|
|
The configuration of threading and multiple camera views can all be done
|
|
via ASCII configuration files, no need to recompile. A number of
|
|
new examples have also been added or revamped, bringing the total to 42.
|
|
|
|
Also in the theme of increasing scalability there is support for 64bit Linux for both
|
|
IA64 (Intel Itanium) and x86-64 (AMD Opteron) which compliments the existing
|
|
support for Solaris and IRIX 64 bit compilation. 64 bit supports allows
|
|
the use of very large data sets, and potential performance improvements.
|
|
|
|
To help support development teams working with multiple build configuration,
|
|
the makefile system has been extended to allow multiple build targets to be
|
|
built from one source code base. All makefiles are also now named GNUmakefile
|
|
which ensures that they are only run by gmake to avoid an confusion on system
|
|
where gmake isn't the default make tool.
|
|
|
|
A completely new osgText implemention has been developed which is simpler
|
|
to use, faster, and thread safe. Support for high quality true type fonts
|
|
has now been moved to a freetype plug-in which is dynamically loaded on demand,
|
|
with the core osgText library providing a default font when the plug-in is
|
|
unavailable. Moving the freetype dependency out of the osgText library makes
|
|
it just dependant on OpenGL and Standard C++ like the rest of the core libraries,
|
|
allowing osgText to compile by default on all platforms.
|
|
|
|
Improved thread safety has also been achieved in the core osg and osgUtil libraries
|
|
making work on multiple CPU/multi-pipe systems robust and with improved performance.
|
|
|
|
Two new plug-ins have been added, for loading DDS and MD2 data formats. The DDS plug-in
|
|
is for loading compressed and non-compressed images. The MD2 plug-in loads Quake
|
|
animated characters.
|
|
|
|
osg::TextureRectangle class has been added, which encapsulates the
|
|
NV_texture_rectangle and EXT_texture_rectangle extensions. This is particularly
|
|
useful for render to texture algorithms, and dynamic paging of images such as for
|
|
rendering video streams.
|
|
|
|
Support for automatic subloading of osg::Texture2D textures has been added
|
|
so that when image data is updated the corresponding OpenGL texture is
|
|
automatically updated - no need for callbacks. Also added to the osg::Texture
|
|
classes is the option of automatic unref'ing of texture image data once the data has
|
|
been download to all active OpenGL graphics contexts.
|
|
|
|
A new osgUtil::DelaunayTriangulator utility class has been added. This is ideal for
|
|
creating optimal triangular meshes from unconnected data points.
|
|
|
|
Two new classes, osg::ArgumentParser and osg::ApplicationUsage, have been introduced
|
|
to convineiently and robustly parse command line arguments and
|
|
report command line usage, environmental variables and keyboard and mouse bindings
|
|
used by applications. Running any of the examples with -h or --help will report
|
|
full details example usage. Keyboard and Mouse bindings usage is now also available as
|
|
a HUD on all examples, simply press 'h' while the app is running to
|
|
bring up help.
|
|
|
|
A database cache in the osgDB library has been added, along with a clean up
|
|
of memory management in the OpenFlight loader, make development of
|
|
dynamic paging of databases easier and more robust.
|
|
|
|
Support for early abort of rendering has been added, which is useful for
|
|
interactive applications which occasionally have rendering that takes that long
|
|
enough (i.e.several seconds) that end users may wish to abort during the drawing.
|
|
|
|
There have also been many general API improvements and bug fixes, too many to enumerate,
|
|
but all go to solidify the quality of the scene graph and its accompanying libraries.
|
|
|
|
The combination of new features, robustness and scalability mark this release as a
|
|
significant step towards 1.0.
|
|
|
|
|
|
|
|
24th January 2003 - OpenSceneGraph-0.9.3.tar.gz
|
|
|
|
>>> adds support navigational light points, multi-threaded dynamic
|
|
>>> paging of Terrapage databases, ARB_vertex_program extension,
|
|
>>> DirectD .x model loader, and integration with OpenProducer for
|
|
>>> multi-threaded, multi-window/pipe rendering.
|
|
|
|
Added osgProducer library which integrates the OpenSceneGraph seemlessly
|
|
with OpenProducer to provide runtime configurable management of windows
|
|
and multipipe graphic systems. The osgproducer demo illustrate how
|
|
developers can write applications very simply that harness the power
|
|
of the OpenProducer and OpenSceneGraph in an extremely flexible way.
|
|
OpenProducer can be downloaded from:
|
|
http://www.andesengineering.com/BlueMarbleViewer/producer_install.html
|
|
|
|
Support added for dynamic paging of Terrage databases, the required
|
|
multi-threading is set up by defult. All the end user application need
|
|
to do is load the database and the paging then happens automatically -
|
|
without any need for intervention by the users application.
|
|
|
|
Addition of osgSim which is NodeKit designed for visual simulation
|
|
market, currently features high fidelity light points support. Light
|
|
point sectors, blink sequences and groups, and light point fading are
|
|
all supported.
|
|
|
|
From Brede Johansen, support added for the ARB VertexProgram extension
|
|
with osgvertexprogram demo showing reflection and refraction in action, and
|
|
osgpbuffer demo for Win32.
|
|
|
|
From Ulrich Hertlein, new DirectX .x model loader.
|
|
|
|
From Tree, Support for encoded text types in osgText.
|
|
|
|
New osgshadowtexture demo which illustrates how to create
|
|
dynamic shadow textures in your scene.
|
|
|
|
New osglogo demo - features anti-aliased TrueType text and animation.
|
|
|
|
The app phase of operations on the scene graph has been renamed
|
|
the update phase to make its function clearer. The main phases are now
|
|
named now does update, cull, draw. The AppVisitor, set/getAppCallback etc
|
|
have be renamed UpdateVisitor, set/getUpdateCallback etc.
|
|
|
|
Removed the osg/ManagerManger and associated #define osgNew's, this has
|
|
been done to simplify users code and to solve the lack of thread safety
|
|
that was causing problems with the MemoryManager.
|
|
|
|
Support added for reading and writing of callbacks in the .osg format.
|
|
|
|
Support added for reading and writing of osg::Shapes in the .osg format.
|
|
|
|
Support added for reading OpenFlight comment records into osg::Node description
|
|
fields.
|
|
|
|
Improvements to the GEO loaders.
|
|
|
|
Numerous bug fixes and API refinements.
|
|
|
|
|
|
13th November 2002 - OpenSceneGraph-0.9.2.tar.gz
|
|
|
|
>>> New AC3D and GEO loaders, new Shape primitives, improved OpenFlight support.
|
|
|
|
From Geoff Michel, AC3D .wc and Carbon Graphics GEO .geo loaders.
|
|
|
|
Support for multi-texturing added to OpenFlight loader.
|
|
|
|
LOD has been revamped to allow independent min and max ranges for
|
|
each LOD child, bringing it inline with the OpenFlight style LOD
|
|
representation.
|
|
|
|
Switch has been revamped to allow independent switching on or off of
|
|
each Switch child, bringing it inline with the OpenFlight style Switch
|
|
representation.
|
|
|
|
New osg::Shape geometry primitives added which allow the specification
|
|
of geometry in a form that can accelerate collision detection, and as
|
|
a way of specifying the geometry to tessellate. Shapes include
|
|
Sphere, Oriented Box, Cone, Cylinder, Grid, TriangleMesh, ConvexHull
|
|
and CompositeShape which allows the storage of a hierarchy of shapes.
|
|
|
|
Geometry has been extended to all per primitive bindings and
|
|
per primitive set bindings of attributes, and indexing of attributes
|
|
with the same or different index lists for each attribute list.
|
|
|
|
From Macro Jez, new cubemap helper classes.
|
|
|
|
Support added for handling different extensions on different graphics
|
|
contexts.
|
|
|
|
Draw and Sort callbacks added to osg::RenderStage.
|
|
|
|
Added PolygonStipple class.
|
|
|
|
Further refinement of class names and method calls:
|
|
Renamed classes :
|
|
|
|
Primitive -> PrimitiveSet
|
|
|
|
Renamed methods :
|
|
|
|
Geometry::addPrimitive(..) -> addPrimitiveSet(..)
|
|
Drawable::drawImmediateMode(..) -> drawImplementation(..) const
|
|
Drawable::DrawCallback::drawImmediateMode(..) -> drawImplementation(..) const
|
|
|
|
|
|
30th August 2002 - OpenSceneGraph-0.9.1.tar.gz
|
|
|
|
>>> Support added for 1D & 3D textures, texture env combiners, secondary color and fog coords, DOFTransform and Sequence nodes. Inventor/VRML and LWO2 loaders added and the a port HP-UX!
|
|
|
|
Despite only 6 weeks passing between 0.9.0 and this latest 0.9.1 release
|
|
there has been a number of significant new features, API clean ups and
|
|
bug fixes. Follows is a quick run through the key improvements.
|
|
|
|
Addition of osg::Texture1D, Texture2D & Texture3D classes, Texture2D replaces
|
|
the original osg::Texture, which has now become a pure virtual base class. All
|
|
Texture classes, including TextureCubeMap are derived from this base class..
|
|
|
|
New osgtexture1D and osgtexture3D demos demonstrate the new texture classes in
|
|
action.
|
|
|
|
The build system has been updated to support HP-UX. This adds one of the last
|
|
remaining mainstream platforms supported.
|
|
|
|
A new Inventor/VRML1.0 loader was added. The inventor format has been requested
|
|
on numerous occasions, so this is a welcome addition.
|
|
|
|
Support added to lwo plugin for loading the new lwo2 format.
|
|
|
|
osg::TexEnvCombine implemented texture_env_combine and texture_env_crossbar
|
|
and texture_env_dot3 extensions.
|
|
|
|
osg::TexEnv texture_env_add added.
|
|
|
|
A osg::Sequence node has finally been implemented. It is accompanied by a
|
|
demo, osgsequence.
|
|
|
|
osg::DOFTransformNode implemented.
|
|
|
|
Support for OpenFlight15.7 added, DOFTransforms and general enhancements and
|
|
bug fixes.
|
|
|
|
New PROTECTED mode for protecting local state mode and attributes from be
|
|
overridden from state above it in the scene graph.
|
|
|
|
Support for fog coord and secondary colors extensions added to osg::Geometry.
|
|
|
|
osg::Billboard has been improved to allow rotations around all axes, as well
|
|
as point rotations. Check osgbillboard for a new improved demo.
|
|
|
|
The osglight example has been improved by utilizing AnimationPath and
|
|
PositionAttitudeTransform to keep light sources in motion.
|
|
|
|
osg::AnimationPath improved, now allowing swing and looping behavior and
|
|
with two new app callbacks which can update PositionAttitudeTransform
|
|
and MatrixTransform respectively.
|
|
|
|
Support for writing osg::Image's to .rgb format added.
|
|
|
|
To keep the overall API clean, and the following items have been
|
|
renamed and deprecated parts of the API have been removed:
|
|
|
|
Renamed classes:
|
|
|
|
EarthSky -> ClearNode
|
|
Transparency -> BlendFunc
|
|
Texture -> Texture2D (old style subload parameters removed)
|
|
|
|
Method's changed
|
|
|
|
Matrix -> makeRotate(..) euler angles parameters generalized.
|
|
Quat -> makeRotate(..) euler angles parameters generalized.
|
|
|
|
BoundingBox -> isValid() renamed valid()
|
|
BoundingSphere -> isValid() renamed valid()
|
|
|
|
StateAttribute -> OVERRIDE_OFF & OVERRIDE_ON which were short hand
|
|
versions of OVERRIDE | OFF and OVERRIDE | ON
|
|
removed, as the meaning of the bitmask was
|
|
often confused by the short hand notation.
|
|
|
|
|
|
Transform -> setMatrix/getMatrix() etc methods removed,
|
|
Transform becoming the transform base class,
|
|
with MatrixTransform taking over all the original
|
|
functionality.
|
|
|
|
|
|
19th 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.gzosg-
|
|
|
|
>>> 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 parameters 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.
|
|
|