On Tue, Oct 5, 2010 at 1:25 PM, paul graham <pd...
> 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.
osg-users mailing list