Add the camera to your scenegraph. Straight from the osgprerender.cpp example parent->addChild(camera);
osg will find the camera and try to render using this camera as well. /Andreas Lindmark > ----- Original Message ----- > From: "deepti g" <[EMAIL PROTECTED]> > To: "OpenSceneGraph Users" <[email protected]> > Subject: Re: [osg-users] Taking an image of an intermediate node. > Date: Fri, 30 Nov 2007 12:02:24 +0000 > > > Hi Robert > I need to take the image without changing the present view > on the screen.. The view which my camera has and the view which my screen > has are completely different.If I add the camera to the viewer,the screen > might be showing what view my camera has which I dont want.. Can you please > guide as to how this could be achieved. > > ThankYou > Deepti > > On Nov 30, 2007 11:53 AM, Robert Osfield <[EMAIL PROTECTED]> wrote: > > > Hi Deepti, > > > > A Camera has to be rendered before the image is populated, you have to > > add it to a viewer and run a frame. > > > > Robert. > > > > On Nov 30, 2007 10:19 AM, deepti g <[EMAIL PROTECTED]> wrote: > > > Hi > > > My problem is regarding taking an image of any intermediate node. > > If > > > the user gives the name of a node,I need to display its image on screen. > > The > > > algorithm I used is : > > > 1)set up a node visitor and make it traverse the entire scenegraph > > > > > > 2) If there is a node with the same name as that given by the user,get > > the > > > nodepath which was used to reach that node and get the transformation > > > matrix..(i.e., the entire transformation which is required to get to > > that > > > node's position) > > > > > > osg::Matrix matrix= > > osg::computeWorldToLocal(NodeVisitor->getNodePath() > > > ); //the transformation matrix > > > > > > 3)Now,according to me,all I need to do is create a camera and set its > > view > > > matrix to be this matrix.So , I did this: > > > > > > osg::Camera *camera=new osg::Camera(); > > > camera->setViewport(new osg::Viewport(0,0, width, height)); > > > camera->setProjectionMatrixAsOrtho2D(0,width,0,height); //FIXME > > > camera->setRenderTargetImplementation ( > > osg::Camera::FRAME_BUFFER_OBJECT); > > > camera->setViewMatrix(matrix); > > > > > > 4) Then I attached an osg::Image object to this camera and tried to > > record > > > the image. > > > > > > osg::Image* shot = new osg::Image(); > > > shot->allocateImage(width, height, 24, GL_RGB, GL_UNSIGNED_BYTE); > > > camera->attach(osg::Camera::COLOR_BUFFER, shot); > > > osgDB::writeImageFile(*shot,"image_file.png"); > > > > > > But the image which Iam getting is completely black.I have no idea where > > Iam > > > going wrong..Can anybody please point out where my mistake is? > > > > > > ThankYou > > > Deepti. > > > > > > _______________________________________________ > > > osg-users mailing list > > > [email protected] > > > > > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > > > > > > > > _______________________________________________ > > osg-users mailing list > > [email protected] > > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > > > > _______________________________________________ > osg-users mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > = -- Powered by Outblaze _______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

