Hi Armin, Essentially the scene graph is a one-for-one representation of my DOM. Each individual object can be edited, or its attributes changed. The DOM can be a small number of geometrically "complex" objects - this causes no performance problems as the geometry "leafs" are large geometrically, or the DOM might have a large number of simple objects.
A KD tree would be useful for removing "not visible" nodes, but in general they are all visible. In "theory" the whole scene graph geometry was flattened to one set of vertex, colors and normals for maximum efficiency - of course, updates to the scene graph would require this structure to be partially or fully rebuilt. That's a bit of overkill for me, as I "know" the parent Group node in the scene graph that I want to make more efficient. Typically the objects under this node have the same attributes. I could flatten my nodes "manually", but flattening the scene graph seems a typical "use-case" that OSG users would want to do. I have done some tests with osg::Optimizer with the MERGE_GEOMETRY option after collecting all the osg::Geometry nodes into a temporary group - this does not do exactly what I want, as it only collects the osg::PrimitiveSets. Not merging the sets themselves. Weirdly calling "optimize" also causes my scene graph to stop drawing for some unknown and very frustrating reason. There is a lot of code in the OSG GLES plugin code that looks promising, but it's quite undocumented and I am having to guess about it's functionality. Andrew On Sunday, March 1, 2020 at 6:14:07 PM UTC-8, Armin Samii wrote: > > Iterating over the 5000 children would be pretty slow - what if you could > discard some of these children without even looking at them? A hierarchy of > sorts, where you can ignore large swaths of those children, would help... > Consider, for example, using a k-d tree: > http://www.openscenegraph.org/index.php/documentation/user-guides/107-kdtrees > > Or you can do this on your own, if you like, by grouping nearby nodes into > their own osg::Group. Depends what your underlying data looks like. > > > > I would not recommend combining the geometry into a single drawable unless > you expect all of them to be visible at once, and that each piece of > geometry is fairly small. > > On Sun, Mar 1, 2020 at 9:07 AM AndrewC <ad...@a-cunningham.com > <javascript:>> 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 osg-...@googlegroups.com <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/osg-users/19df5325-01d5-4fa7-94d2-9c9560c92956%40googlegroups.com >> >> <https://groups.google.com/d/msgid/osg-users/19df5325-01d5-4fa7-94d2-9c9560c92956%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > > > -- > > Armin Samii > > Visualization Software Engineer, Argo AI <http://argo.ai/> > CONFIDENTIALITY NOTICE: This e-mail and any files transmitted with it are > confidential and designated solely for use of the individual(s) or entity > to whom they are addressed. If you are not the named addressee, you are > notified that disseminating, copying, disclosing or taking any action in > reliance on its contents is strictly prohibited and could subject you to > legal action by the sender. Please notify the sender immediately if you > have received this e-mail in error and delete it from your system. Thanks > for your cooperation. > -- 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 osg-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/osg-users/a98e70fb-9a0b-4925-a526-1371d294b5af%40googlegroups.com.
_______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org