[osg-users] Please test OpenSceneGraph-3.6 branch in prep for 3.6.1

Robert Osfield robert.osfield at gmail.com
Fri Apr 20 07:58:01 PDT 2018

Hi All,

I have made several bug fixes and other improvements to the 3.6 branch
since the 3.6.0 stable release a couple of weeks ago and now feel that
they are worthwhile rolling into a 3.6.1 stable release so that all
users get to benefit from them.

The key changes I have made are:

  1) Fix a bug where the OSG was creating VBO's within Display Lists
(caused a crash on a particular driver.)

  2) Fix a bug in osg::Geometry::set*Binding() where it wasn't
assigning a BufferObject when it should have (this caused a
performance regression and crash with VAO usage.)

  3) Replaced all remaining IntersectVisitor (which has been
deprecated for many years) usage with the modern IntersectionVisitor
and made the deprecated messages clearer in
include/osgUtil/IntersectVisitor.  (In OSG master I've removed this
old class completely.)

  4) Changed places that invoked the old osgUtil::TriStripVisitor so
that they use the
osgUtil::MeshOptimizers instead as these work far better when using
VBO/VAO's.  (In OSG master I also completely removed TriStripVisitor.)

I don't expect my changes to break the build, but it's still not safe
enough for me to tag 3.6.1 straight without getting some community
feedback, so here I am again asking members of the community to check
out the OpenSceneGraph-3.6 branch from github and tests the build and
runtime on your build tools.

If you are using OSG master then there is chance that your build will
break if you use the old IntersectVisitor and TriStripVisitor classes,
but then that's good, you should have rewritten you code long ago so
now you have a reason to make the required improvements :-)

Please let me know of success and failures, or any bugs you've seen in
3.6.0 but haven't reported yet :-)


ChangeLog since 3.6.0

Fri, 20 Apr 2018 14:32:34 +0100
Author : Robert Osfield
Replaced osgUtil::IntersectVisitor usage with osgUtil::InteresectionVisitor

Fri, 20 Apr 2018 10:24:17 +0100
Author : Robert Osfield
Removed TriStripVisitor for default set of Optimizer passes as it
doesn't generate efficient scene graphs

Fri, 20 Apr 2018 09:57:04 +0100
Author : Robert Osfield
Added osgUtil::optimizeMesh(osg::Node* node) convinience method

Fri, 20 Apr 2018 11:42:31 +0100
Author : Robert Osfield
Removed usage of the osgUtil::TriStripVisitor is it generates
osg::Geometry that perform very poorly when using VBO and VAO's vs GL
DisplayLists. With DisplayLists being deprecated in GL and VBO and VAO
becoming standard it's best to standardize on using the
osgUtil::MeshOptimizers instead of TripStrupVisitor

Thu, 19 Apr 2018 19:43:14 +0100
Author : Robert Osfield
Fixed the set*Binding() methods so that they assign BufferObjects when required

Thu, 19 Apr 2018 19:42:51 +0100
Author : Robert Osfield
Fixed messages

Thu, 19 Apr 2018 19:41:51 +0100
Author : Robert Osfield
Fixed the GLBufferObject size computation so that it takes into account padding.

Thu, 19 Apr 2018 19:36:19 +0100
Author : Robert Osfield
Replaced the use of osgUtil::TriStripVisitor with
ogUtil::MeshOptimizer usage to improve performance. Fixed set
setColorArray assignement to pass in the color binding

Wed, 18 Apr 2018 10:02:43 +0100
Author : Robert Osfield
Fixed the handle of boundary equalization

Wed, 18 Apr 2018 09:33:12 +0100
Author : Robert Osfield
Added --equalize-boundaries -e command line option to call

Mon, 16 Apr 2018 17:53:38 +0100
Author : Robert Osfield
Updated version number in prep for future 3.6.1 release.

Mon, 16 Apr 2018 15:08:24 +0100
Author : Robert Osfield
Fixed inline Drawable::draw(..) method

Mon, 16 Apr 2018 15:05:11 +0100
Author : Robert Osfield
Fixed Geometry::drawImplmentation() handling of VBO's to prevent them
from being used when display lists are used.

Sun, 15 Apr 2018 08:25:57 +0100
Author : Robert Osfield
Replaced osgViewer::GraphicsWindow dynamic_cast as it's not neccessary.

More information about the osg-users mailing list