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@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
_______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org