[osg-users] Fast move a lot of nodes to another group

Sebastian Messerschmidt sebastian.messerschmidt at gmx.de
Tue Apr 18 00:35:50 PDT 2017



Am 4/15/2017 um 6:24 PM schrieb Yura Ivanov:
> Hi,
>
> I created stateset with bool uniform to indicate that node is selected and mat uniform with current mouse transform. To select nodes, I set this uniforms to nodes and all transformation preforms in shader. On mouse release, all transform applies to nodes by calling setMatrix and mat uniform sets to identity. Everything works fast and after all I don’t have extra nodes and statesets. Maybe my approach in this task is wrong, but many editors, for example 3dsMax, can work with big number of objects. And bad structure of scene in this case is user problem.
> Thank you very much, especially for optimize.

This will disable "native" picking of the nodes however. Also I wonder 
why this should be more efficient than putting every node under a 
transform in the first place.
What you're doing is effectively a poor implementation of instancing. A 
better approach (if you want to use the uniform approach) is to setup a 
uniform buffer object (see [0]) containing the matrices and to use the 
draw-instanced version of your geometry to fetch it based on its 
gl_InstanceId. A version that scales better is to use a texture object 
to hold the matrices (see [1])


[0]
http://3dcgtutorials.blogspot.de/2013/09/instancing-with-openscenegraph-part-ii.html

[1]
http://3dcgtutorials.blogspot.de/2013/08/instancing-with-openscenegraph.html

Cheers
Sebastian

>
> Cheers,
> Yura
>
> ------------------
> Read this topic online here:
> http://forum.openscenegraph.org/viewtopic.php?p=70767#70767
>
>
>
>
>
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>



More information about the osg-users mailing list