It’s been another long gap between developer releases, a bit over two months, the festive season and some heavy duty submissions and weeks of bug fixing and optimization have meant that opportunities for tagging a release have not arisen till now. The amount of work tackling these task has also meant that not all submissions have been merged yet – with 2.9.7 out the door I’ll now be returning to these, so please be patient.
The big news for this release is that Wang Rui has been working hard on developing new extensible serialization support for osgDB that introduces a new OpenSceneGraph native binary (.osgb) and ascii (.osgt) file formats. The great thing about this new serialization support is that it enables us to have an extensible binary format, and to be able to publish a formal schema for the file formats directly from the serialization set. As the new support is extensible end users can add serialization support for their own classes, so third party NodeKits and applications can leverage the native .osgb binary format. This new scheme deprecated the old .osg and .ive formats. Further details on the new serialization support can be found at SerializationSupport.
A quick summary of the key deliverables for this release are:
- OpenSceneGraph-2.9.7, released on 22nd February 2009, key deliverables in this dev release are:
- Introduction of new serialization support in osgDB and associated src/osgWrapper/serialization plugins, which enable a new OpenSceneGraph native dual binary (.osgb) /ascii (.osgt) file format within a unified and extensible set of serialization wrappers and classes.
- Improvements to the thread safety of Observers, new osg::ObserverNodePath class for tracking NodePaths with thread safe access of NodePath.
- New OSG_NOTIFY macros that add a conditional check to avoid using of ostreams when the stream is to be ignored, this fixes a windows threading performance issue due to the poor Microsoft implementation of ostreams – the result is better and more consistent frame rates under windows when doing threading – such when using the DatabasePager.
- New Cmake variable OSG_NOTIFY_DISABLED that is OFF by default, but by setting it to ON you can disable all osg::notify/OSG_NOTIFY related messages. This enables the compilers to optimize away all OSG_NOTIFY usage as well as avoid messages being sent to the console. The notify message are very useful in application development so we’d recommend that you disable notify for performance testing or formal software releases.
- Improvement in efficiency and thread safety in the DatabasePager resulting in less frame drops, and fixes to occasional crashes that occurred when using many paging threads and rapid movements over databases.
- Fixes to TerraPage (.txp) plugin which address problems with memory consumption due to no longer used archives not being released.
- Improvements to Inventor plugin.
- Improvements to osgAnimation.
- Improvements to handling of precision in KdTree intersections which fix problems with missed intersection.
- Improvements to osgWidget::Input.
- Improvements to osgDB::XmlInput so that it handles a wider range of xml files.
- Improvements to audio syncing and pause support in the ffmpeg plugin.
- Lots of little compile and bug fixes.
To obtain the source code:
source package : OpenSceneGraph-2.9.7.zip
svn tag: svn co http://www.openscenegraph.org/svn/osg/OpenSceneGraph/tags/OpenSceneGraph-2.9.7 OpenSceneGraph
Many thanks to all those who’ve helped with coding, testing and debugging of this release,
Robert Osfield, OpenSceneGraph Project Lead.



