Hi,

I'm trying to setup some cameras without a manipulator. When I assign a 
Trackballmanipulator on the vies, I get the cow projected on the screen. But as 
soon as I manually setup the cameras, I get a completely black screen.
I extract eye, center and up from Tman (Trackballmanipulator) by 
Tman->getMatrix().lookat(eye, center, up).

This gives some nice coordinates, but when I put these in a camera without a 
manipulator like Tman, I just get a black screen. What am I doing wrong here?


Code:

int main( int argc, char **argv )
{

    // use an ArgumentParser object to manage the program arguments.
   osg::ArgumentParser arguments(&argc,argv);



        osg::Group* scene = new osg::Group();
        osg::Node* groundNode = NULL;
        groundNode = osgDB::readNodeFile("cow.osg");

        scene->addChild(groundNode);

    osgViewer::CompositeViewer viewer(arguments);

    if (arguments.read("-2"))
    {

        // view one
        {

                        osg::Vec3d eye = osg::Vec3d(0,0,250);
                        osg::Vec3d center = osg::Vec3d(0,0,250);
                        osg::Vec3d up = osg::Vec3d(0,0,-1);
                        osg::Quat rotation;
                        osg::Matrixd viewmat;
                                
                        osg::Camera* camera = new osg::Camera;
            osgViewer::View* view = new osgViewer::View;
            view->setName("View one");
            viewer.addView(view);
    //camera->setProjectionMatrix( osg::Matrix::ortho2D(0,512,0,512) );  //not 
doing anything 
    //camera->setReferenceFrame( osg::Transform::ABSOLUTE_RF );
    //camera->setViewMatrix( osg::Matrix::identity() );
                        view->setCameraManipulator(Tman);
                        //Tman->setAutoComputeHomePosition(false);
            view->setUpViewOnSingleScreen(0);
            view->setSceneData(scene);
                        //view->setCamera(camera);

        }

        // view two
        {
                        osg::Matrixd viewmat;
                        osg::Camera* camera = new osg::Camera;
            osgViewer::View* view = new osgViewer::View;
            view->setName("View two");
            viewer.addView(view);
            view->setUpViewOnSingleScreen(1);
            view->setSceneData(scene);
            //view->setCamera(camera);
            view->setCameraManipulator(Tman);
                        view->setName("right");
                        osg::Vec3d eye = osg::Vec3d(0,0,25);
                        osg::Vec3d center = osg::Vec3d(0,0,25);
                        osg::Vec3d up = osg::Vec3d(0,0,-1);
        }
    }
        viewer.realize();



        while(!viewer.done())
        {               
                
                        osg::Vec3d eye = osg::Vec3d(0,0,50);
                        osg::Vec3d center = osg::Vec3d(0,0,50);
                        osg::Vec3d up = osg::Vec3d(0,0,-1);
                Tman->setHomePosition(eye,center,up); //not working. Doesn't 
matter how I set eye, center etc.
                viewer.frame();
        }
}




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





_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to