We've run into a very similar issue recently, with hundreds of inividually movable objects in a scene.
Our ugly workaround was to require a modifier key, e.g. Alt to be pressed if one really intended to move an object. So at least the camera controls when not pressing the modifier remained smooth. I would also be very interested in seeing some optimization to the way draggers compute their intersections. Greetings, Christian 2015-05-06 18:49 GMT+02:00 Jaap Glas <[email protected]>: > Dear all, > > I am an employee of dGB Earth Sciences, and we use OpenSceneGraph for > the 3D visualization of our open-source seismic interpretation package > OpendTect. > > Our scenes may sometimes contain hundreds to thousands of draggers, mostly > Translate(1D/2D)Draggers. We found that mouse clicking in the scene becomes > very slow in that case. It turns out that every OSG dragger tries to > intersect > the line from camera eye to mouse position with all objects in the scene in > order to produce its private list of intersections: > > [osgManipulator/Dragger.cpp:371] > if ( view->computeIntersections(ea ,intersections,_intersectionMask) ) > > My question is whether this is really necessary? I don't see (yet) why > this list cannot be calculated only once and shared by all OSG draggers. > Or alternatively, only calculated for draggers that are located under the > mouse pointer. > > Our current workaround consists of derived dragger classes that overload > the Dragger::traverse(.) function to test this latter alternative in > advance, > passing the current node path as an extra parameter: > > if ( !view->computeIntersections(*ea,nv.getNodePath(),intersections, > > _intersectionMask) ) continue; > > This reduces the computational order of mouse clicking from quadratic to > linear with the number of draggers in the scene. And mouse clicking in the > scene can be done again without huge delay. > > However, the question is whether such a shortcut would apply in the general > case. Why is the osgManipulator::Dragger class doing this the way it does? > > > Best regards, > > Jaap Glas > > > -- dr Jaap C. Glas > -- Software Engineer > -- dGB Earth Sciences > -- Phone: +31 53 435155 > -- Email: > -- Internet: dgbes.com & opendtect.org > > ------------------ > Read this topic online here: > http://forum.openscenegraph.org/viewtopic.php?p=63651#63651 > > > > > > _______________________________________________ > osg-users mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org >
_______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

