<div dir="ltr"><div>Hi Armin,</div><div>Essentially the scene graph is a one-for-one representation of my DOM. Each individual object can be edited, or its attributes changed. </div><div>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.</div><div><br></div><div>A KD tree would be useful for removing "not visible" nodes, but in general they are all visible.</div><div><br></div><div>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.</div><div><br></div><div>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. </div><div><br></div><div>I could flatten my nodes "manually", but flattening the scene graph seems a typical "use-case" that OSG users would want to do.</div><div><br></div><div>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.</div><div>Weirdly calling "optimize" also causes my scene graph to stop drawing for some unknown and very frustrating reason.<br></div><div><br></div><div>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.</div><div><br></div><div><br></div>Andrew<br><br>On Sunday, March 1, 2020 at 6:14:07 PM UTC-8, Armin Samii wrote:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir="ltr">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...<div>Consider, for example, using a k-d tree: <a href="http://www.openscenegraph.org/index.php/documentation/user-guides/107-kdtrees" target="_blank" rel="nofollow" onmousedown="this.href='http://www.google.com/url?q\x3dhttp%3A%2F%2Fwww.openscenegraph.org%2Findex.php%2Fdocumentation%2Fuser-guides%2F107-kdtrees\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFLyCE1N4jHHrYgWDYPTuuAXyH6rg';return true;" onclick="this.href='http://www.google.com/url?q\x3dhttp%3A%2F%2Fwww.openscenegraph.org%2Findex.php%2Fdocumentation%2Fuser-guides%2F107-kdtrees\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFLyCE1N4jHHrYgWDYPTuuAXyH6rg';return true;">http://www.<wbr>openscenegraph.org/index.php/<wbr>documentation/user-guides/107-<wbr>kdtrees</a></div><div><br></div><div>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.</div><div><br></div><div><br></div><div><br></div><div>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.</div></div><br><div class="gmail_quote"><div dir="ltr">On Sun, Mar 1, 2020 at 9:07 AM AndrewC <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="QvuHNctmCwAJ" rel="nofollow" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">ad...@a-cunningham.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hi,<br></div><div>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.<br></div><div>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?</div><div><br></div><div>Andrew<br></div></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups "OpenSceneGraph Users" group.<br>
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="javascript:" target="_blank" gdf-obfuscated-mailto="QvuHNctmCwAJ" rel="nofollow" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">osg-...@<wbr>googlegroups.com</a>.<br>
To view this discussion on the web visit <a href="https://groups.google.com/d/msgid/osg-users/19df5325-01d5-4fa7-94d2-9c9560c92956%40googlegroups.com?utm_medium=email&utm_source=footer" target="_blank" rel="nofollow" onmousedown="this.href='https://groups.google.com/d/msgid/osg-users/19df5325-01d5-4fa7-94d2-9c9560c92956%40googlegroups.com?utm_medium\x3demail\x26utm_source\x3dfooter';return true;" onclick="this.href='https://groups.google.com/d/msgid/osg-users/19df5325-01d5-4fa7-94d2-9c9560c92956%40googlegroups.com?utm_medium\x3demail\x26utm_source\x3dfooter';return true;">https://groups.google.com/d/<wbr>msgid/osg-users/19df5325-01d5-<wbr>4fa7-94d2-9c9560c92956%<wbr>40googlegroups.com</a>.<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div><span><div dir="ltr" style="margin-left:0pt"><table style="border:none;border-collapse:collapse"><colgroup><col width="97"><col width="527"></colgroup><tbody><tr style="height:37pt"><td style="border-width:1pt;border-style:solid;border-color:rgb(255,255,255);vertical-align:middle;padding:5pt"><img src="https://lh5.googleusercontent.com/proxy/J2VWEgWGyi4GA9RRQrWW4Uod5ec6v4Cl45Q_0SeBiaFfyCFbtFeWOfX4p5JTVKXqWVG_iIycdgEO2aRu17VPvbDu43iEuUDxvmWhlFB9vfVlDwg6buTVaQxk5zd8lAZyfSWzWf8FWB2aHWsgnNWumYSanxI6csgJ_V7KlWizOI3Fjt2buEOT9EDQIoXRyo_l1TpOO6VJyc3mpMLEVNw4xWM23WJs9UKaJZwmylPklJMyr3yEiIOk3Vd0yUvqYkFRgC7M3UXB1rcRz51GE-IhZLb9LOrFn3RkDGGLwrT6Weq3gu4slQwuwVjcE0WnLdEGx19FDgqYRVvSbpNy7g=w5000-h5000"><br></td><td style="border-width:1pt;border-style:solid;border-color:rgb(255,255,255);vertical-align:middle;padding:5pt"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;border-left:0.5pt solid rgb(0,0,0);padding:0pt 0pt 0pt 4pt"><span style="font-size:10pt;font-family:Roboto;color:rgb(72,80,82);background-color:transparent;font-weight:700;vertical-align:baseline;white-space:pre-wrap">Armin Samii</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;border-left:0.5pt solid rgb(0,0,0);padding:0pt 0pt 0pt 4pt"><span style="font-size:10pt;font-family:Roboto;color:rgb(72,80,82);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Visualization Software Engineer, </span><a href="http://argo.ai/" target="_blank" rel="nofollow" onmousedown="this.href='http://www.google.com/url?q\x3dhttp%3A%2F%2Fargo.ai%2F\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNH5BBFU1wX1jvLwPr2sZEdE1YtW6A';return true;" onclick="this.href='http://www.google.com/url?q\x3dhttp%3A%2F%2Fargo.ai%2F\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNH5BBFU1wX1jvLwPr2sZEdE1YtW6A';return true;"><span style="font-size:10pt;font-family:Roboto;color:rgb(72,80,82);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Argo AI</span></a></p></td></tr></tbody></table></div></span></div><span><span style="font-family:Roboto;color:rgb(72,80,82);vertical-align:baseline;white-space:pre-wrap"><font size="1"><div>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.<br></div></font></span></span></div></div></div></div>
</blockquote></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups "OpenSceneGraph Users" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="mailto:osg-users+unsubscribe@googlegroups.com">osg-users+unsubscribe@googlegroups.com</a>.<br />
To view this discussion on the web visit <a href="https://groups.google.com/d/msgid/osg-users/a98e70fb-9a0b-4925-a526-1371d294b5af%40googlegroups.com?utm_medium=email&utm_source=footer">https://groups.google.com/d/msgid/osg-users/a98e70fb-9a0b-4925-a526-1371d294b5af%40googlegroups.com</a>.<br />