I found a reasonably good generic solution to flatten any part of my scene graph. - Use a visitor pattern to collect all my osg::Geometry into a set of geometries starting at the osg::Group in question - do a clone of the geometries into a new set with (osg::CopyOp::DEEP_COPY_PRIMITIVES | osg::CopyOp::DEEP_COPY_ARRAYS) , then add them into a new osg::Group for the optimizer to work with. - Use a osgUtil::MergeGeometryVisitor to collect all the primitive sets - Then an osgUtil::IndexMeshVisitor to merge the primitive sets
On Sunday, March 1, 2020 at 9:07:42 AM UTC-8, AndrewC wrote: > > Hi, > I was wondering what the best practices are for dealing with a complex > scene graph where a single osg::Group might have , say, 5000 children where > each child is fairly simple osg::Geom geometry. Clearly, this is > inefficient and draws slowly. > So obviously, compiling/collecting the geometry into one drawable would be > much more efficient. osgUtil::Optimizer does not seem to do this for me, or > am I missing something? > > Andrew > -- You received this message because you are subscribed to the Google Groups "OpenSceneGraph Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/osg-users/81eebbe0-f14b-4aa4-9c09-8bed0152647b%40googlegroups.com.
