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