[osg-users] update slave camera with frame scheme ON_DEMAND

Gianni Ambrosio g.ambrosio+osg at gmail.com
Wed Aug 5 07:25:04 PDT 2015

Thank you Robert for the explanation.

Please don't blame me if I have a couple of questions.

First of all, debugging the updateTraversal() implementation it seems the AxesCameraUpdateCallback is called twice: one in


and the second time in


I guess this is an expected behavior.

Second, you say "The master Camera's value can depend upon values in the scene graph". But isn't the scene updated in updateSceneGraph call? While the slave cameras are updated in a couple of following for loops? I mean, couldn't the main camera view matrix be updated, I agree after the updateSceneGraph() call, but before the slave cameras? Or at least move the slave cameras with "_useMastersSceneData=false" after the main camera? Something like:


        if (view->getCameraManipulator())
            view->setFusionDistance( view->getCameraManipulator()->getFusionDistanceMode(),
                                    view->getCameraManipulator()->getFusionDistanceValue() );

            view->getCamera()->setViewMatrix( view->getCameraManipulator()->getInverseMatrix());

         // Do UpdateTraversal for slaves with their own subgraph
         for(unsigned int i=0; i<view->getNumSlaves(); ++i)
               osg::View::Slave& slave = view->getSlave(i);
               osg::Camera* camera = slave._camera.get();
               if(camera && !slave._useMastersSceneData)



Read this topic online here:

More information about the osg-users mailing list