[osg-users] Slave cameras in a view

Robert Osfield robert.osfield at gmail.com
Wed Oct 17 01:33:00 PDT 2007


Hi Karl,

The master and slave cameras will be drawn in the same frame.

If you see a difference then it must be down to the propagation of the
settings from the master to the slave being out of sync.  I don't know
how you set the master, perhaps you are setting it after the sync
point.  The View::updateSlaves() method that does this sync is called
from within Viewer::updateTraversals() so perhaps you are setting the
master camera after this.

Robert.

On 10/17/07, Karl Heijdenberg <karl.heijdenberg.osg at gmail.com> wrote:
> Hi and thanks for the tip about where to look for code for the
> projectionOffset. I now have a slave camera with the expected projection
> offset next to the master camera.
>
> One thing that I found out was that the slave camera is drawn one frame
> after the master. Both cameras are drawn to the same graphics context. I can
> easily see this in the seam between the two cameras by moving my scene up or
> down at a constant speed. My slave camera is then drawn a at a constant
> distance behind my master camera.
>
> In the osgwindow example separate graphics contexts are used for master and
> slave cameras. Is that the way it should be done? And then why?
>
> If I set up the two cameras with different graphics contexts they draw
> within the same frame (when I use the "thread per context" threading model).
>
> Regards Karl
>
>
>
> On 10/15/07, Robert Osfield <robert.osfield at gmail.com> wrote:
> >
> > Hi Karl,
> >
> > Have a look at the osgwindows example, or the
> > View::setUpViewAcrossScreens() source code in
> > src/osgViewer/Viewer.cpp.
> >
> > On 10/10/07, Karl Heijdenberg < karl.heijdenberg.osg at gmail.com> wrote:
> > > Hi,
> > >
> > > I'm trying to add two cameras to one View in compositeViewer.
> > > The first camera is added as a master camera and the second as a slave
> > > camera.
> > >
> > > Frustums for the cameras:
> > > master={-50, 0, -40, 40}
> > >  slave={0, 50, -40, 40}
> > >
> > > For the first camera I set the projectionMatrix with
> > > setProjectionMatrixAsFrustum.
> > >
> > > How do I calculate the projectionOffset for the slave camera?
> > >
> > > The offset is needed in call to addSlave(osg::Camera* camera,const
> > > osg::Matrix& projectionOffset, const osg::Matrix& viewOffset, bool
> > > useMastersSceneData=true);
> > >
> > > I've also tried to set the reference frame to
> ABSOLUTE_RF_INHERIT_VIEWPOINT
> > > and then call the setProjectionMatrixAsFrustum for both cameras. This
> test
> > > ended up in a black scene for the second camera. Am I missing something?
> > >
> > > Thanks, Karl
> > > _______________________________________________
> > > osg-users mailing list
> > > osg-users at lists.openscenegraph.org
> > >
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
> > >
> > >
> > _______________________________________________
> > osg-users mailing list
> > osg-users at lists.openscenegraph.org
> >
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
> >
>
>
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>



More information about the osg-users mailing list