<div dir="ltr"><div>Hi Gianluca,</div><div>We have performance problems with scene graphs when we end up with thousands of nodes and "small=low triangle count" geometries at each node. After investigation, it is clearly not so much the scene graph traversal itself, as the large number of small "primitive sets". I tested this by writing a node visitor that collected all the primitive sets from our scene graph into one Geode - thus removed all overhead of scene graph traversal.The performance, was better, but nothing special. However, coalescing all the primitive sets into one primitive set caused a massive FPS improvement. Orders of magnitude.</div><div><br></div><div>Andrew</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Oct 8, 2019 at 7:47 AM Voerman, L. <<a href="mailto:l.voerman@rug.nl">l.voerman@rug.nl</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">Hi Gianluca,<div>I have a feeling something is wrong with your setup, as we do these sort of graphs in our viewer and get way higher framerates.</div><div>I get about 60 fps rendering 1920x1080x2 (=red-green stereo) on my Geforce 1080,</div><div>with a static scene of 1.1 M vertices (886k triangels)</div><div>and in a similar shape ~9200 matixTransforms each with a ref to mostly the same tree (4.5k vertices, vk triangels)</div><div>A few questions:</div><div>where seems to be the bottelneck when you enable the stats?</div><div>What os/gfx combo do you use?</div><div>if you dump out the scene and load it into the osgviewer, does the framerate improve?</div><div>are you sure you're not useing a windows debug build?</div><div><br></div><div>Regards, Laurens.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Oct 8, 2019 at 2:21 PM Gianluca Natale <<a href="mailto:natale@europe.altair.com" target="_blank">natale@europe.altair.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 lang="IT">
<div>
<p class="MsoNormal">Hi all,<u></u><u></u></p>
<p class="MsoNormal">I have a performance issue in my scenegraph that I cannot completely understand.<u></u><u></u></p>
<p class="MsoNormal">My scenegraph is made by a main matrix transform, with these 2 children:<u></u><u></u></p>
<ul style="margin-top:0cm" type="disc">
<li style="margin-left:0cm">One geode that renders a big object on screen (the geometry in the drawable can take up to several thousands vertices);<u></u><u></u></li><li style="margin-left:0cm">One group node that in its turn has 200 children, each made by a matrix transform and a geode. The drawable in each of those geodes is very simple (no more than 100 vertices)<u></u><u></u></li></ul>
<p class="MsoNormal">It seems that this configuration allows me to have at most 50 fps.<u></u><u></u></p>
<p class="MsoNormal">I feel that this should be rendered much faster.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">So I made some experiment. If I remove the 200 matrix transform attached to the group node I mentioned above,<br>
and directly apply the transformations to the vertices of the geometries in the 200 drawables of the small objects, performance improves a lot, till 100 fps.<br>
I investigatd a bit inside OSG code (I’m using OG ver.3.4.1), and apparently the only overhead due to the additional matrix transformations is a call to glLoadMatrix (I’m using the old ffp).<br>
How can you explain such an improvement?<br>
<br>
My real problem is that I would like to replace the 200 matrix transfromations with 200 auto-transform matrices, since I’d like those small objects to keep constant size on screen.<u></u><u></u></p>
<p class="MsoNormal">But if I do that, I cannot remove the 200 transformations at all, and I’ll end up with a bad performance.<u></u><u></u></p>
<p class="MsoNormal">Any idea about what I can try to make rendering of my scenegraph faster?<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Thanks,<u></u><u></u></p>
<p class="MsoNormal">Gianluca<u></u><u></u></p>
</div>
</div>

_______________________________________________<br>
osg-users mailing list<br>
<a href="mailto:osg-users@lists.openscenegraph.org" target="_blank">osg-users@lists.openscenegraph.org</a><br>
<a href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org" rel="noreferrer" target="_blank">http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org</a><br>
</blockquote></div>
_______________________________________________<br>
osg-users mailing list<br>
<a href="mailto:osg-users@lists.openscenegraph.org" target="_blank">osg-users@lists.openscenegraph.org</a><br>
<a href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org" rel="noreferrer" target="_blank">http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org</a><br>
</blockquote></div>