Hi Paul, On Tue, Oct 5, 2010 at 1:25 PM, paul graham <[email protected]> wrote: > Hi, I'm hoping someone can help - I'm calculating a scaling value in my cull > traversal using the pixelSize() function. I then set my scaling matrix in the > update traversal. > > The problem with this is that the scale calculated is always one frame out > when it get's applied - so there's a noticeable jerkiness on zooming in. > > If I update my matrix in the cull traversal, zooming is smooth, however I > understand that this is a dangerous thing to do.
In general I would recommend users modify the scene graph outwith the cull and draw traversals as this ensures the most flexible and robustness w.r.t any threading and multi-context work that you may wish to do. However, as long as your aware of the potential pitfalls it can be safe to modify the scene graph during cull, and it's also possible to compute data on the fly dynamically in cull and avoid any need to modify the scene graph. In you case you are modify the scene graph in a way that at worst might lead to a matrix getting the wrong values if you have multiple cull traversals per frame, but it won't lead to a crashes as you aren't creating or destroying data or leading to any changes that might cause a serious threading issue. If you do have multiple viewer cameras then you will have multiple cull traversals and multiple possible settings for your scaling and in this case you might want to consider one camera the dominate one, or multi-buffering the scaling, or doing the transform completely on the fly in cull. Robert. Robert. _______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

