[osg-users] multiple matrix transfromations cause severe slowness in performance

Voerman, L. l.voerman at rug.nl
Tue Oct 8 07:46:57 PDT 2019

Hi Gianluca,
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.
I get about 60 fps rendering 1920x1080x2 (=red-green stereo) on my Geforce
with a static scene of 1.1 M vertices (886k triangels)
and in a similar shape ~9200 matixTransforms each with a ref to mostly the
same tree (4.5k vertices, vk triangels)
A few questions:
where seems to be the bottelneck when you enable the stats?
What os/gfx combo do you use?
if you dump out the scene and load it into the osgviewer, does the
framerate improve?
are you sure you're not useing a windows debug build?

Regards, Laurens.

On Tue, Oct 8, 2019 at 2:21 PM Gianluca Natale <natale at europe.altair.com>

> Hi all,
> I have a performance issue in my scenegraph that I cannot completely
> understand.
> My scenegraph is made by a main matrix transform, with these 2 children:
>    - One geode that renders a big object on screen (the geometry in the
>    drawable can take up to several thousands vertices);
>    - 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)
> It seems that this configuration allows me to have at most 50 fps.
> I feel that this should be rendered much faster.
> So I made some experiment. If I remove the 200 matrix transform attached
> to the group node I mentioned above,
> 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.
> 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).
> How can you explain such an improvement?
> 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.
> But if I do that, I cannot remove the 200 transformations at all, and I’ll
> end up with a bad performance.
> Any idea about what I can try to make rendering of my scenegraph faster?
> Thanks,
> Gianluca
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20191008/5af04db0/attachment.html>

More information about the osg-users mailing list