Hi all.
Is it possible to redirect the main camera of a view temporarily to a FBO?
It is my intention to get a snapshot of the scene with a modified
projection matrix.
I think about something like that:
osg::ref_ptr<osg::Camera> camera = view->getCamera();
osg::Camera::RenderTargetImplementation rti =
camera->getRenderTargetImplementation();
osg::MatrixdprojectionMatrix=view->getCamera()->getProjectionMatrix();
camera->setRenderTargetImplementation(osg::Camera::FRAME_BUFFER_OBJECT);
osg::ref_ptr<osg::Image> fbImage=newosg::Image;
fbImage->allocateImage(width,height,1,GL_RGBA,GL_UNSIGNED_BYTE,1);
camera->attach(osg::Camera::COLOR_BUFFER,fbImage.get(),0,0);
camera->setProjectionMatrix(projectionMatrix*offsetMatrix);
view->frame();
camera->setRenderTargetImplementation(rti);
camera->detach(osg::Camera::COLOR_BUFFER );
camera->setProjectionMatrix(projectionMatrix);
I tried it but my screen gets updated on the frame() call with the
modified projection matrix
and the image stays black.
Thanks for any hints.
- Werner -
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org