Hi Sebastian,

I looked more into this and I think it has to do with the projection matrix of 
the slave camera. updateTraversal() calls updateSlaves() which sets the slave 
camera's projection matrix to the master cameras projection matrix multiplied 
by the slave's _projectionOffset.

So I added the following code to the if (pbuffer.valid()) block:


Code:
double fovy, aspect, near, far;
viewer.getCamera()->getProjectionMatrixAsPerspective(fovy, aspect, near, far);
osg::Matrixd masterPerspective = viewer.getCamera()->getProjectionMatrix();
osg::Matrixd slavePerspective = osg::Matrixd::perspective(fovy, double(width) / 
double(height), near, far);
slavePerspective = slavePerspective * osg::Matrixd::inverse(masterPerspective);

...

viewer.addSlave(camera.get(), slavePerspective, osg::Matrixd());



This seemed to work for me, but I don't know how 'good' or resilient of a 
solution it is.

Thanks,
Derek

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=68241#68241





_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to