Hi,

I am somewhat new to OpenSceneGraph. For my project we need to render 
"offscreen" -- so that overlapping windows do not corrupt the rendered image. 
We are using osg::Camera::FRAME_BUFFER_OBJECT render implementation, and 
getting the core behaviour we want, which is to say that we can extract the 
correctly rendered pixels from the image attached to the camera/frame buffer 
object.

However, I still have two issues, and a question on performance:

1) The on-screen window is not showing the rendered image. Instead it is filled 
with garbage (or black) pixels. The question is what is the best way to reflect 
the contents of the fbo image?  Should we do as osgprerender example does and 
create some geometry (osg::Geometry) and then texturemap the image onto the 
surface, or is there another (better?) way to push the pixels into the 
framebuffer so that the on-screen window displays properly?

2) using osg::Camera::PIXEL_BUFFER_RTT render implementation crashes on our 
system. We are running 32-bit Windows XP with dual SLI-graphics NVIDIA 5600 
cards. I didn't spend a lot of time on this problem, mainly wondering if others 
are seeing the same?

3) Question: Any recommendation(s) on ways to increase/maximize performance 
when using fbo?


Here is a code snippet showing how we are currently setting up the fbo:

   .
   .
   .
   osg::Image * fboImage = new osgImage();
   fboImage->allocateImage( width, height, 1, GL_RGB, GL_UNSIGNED_BYTE);

   wc->cameraPostRenderCB = new WindowCapturePostDrawCallback(wc->getView(), 
fboImage, NULL);

   // attach the image so it's copied on each frame.

   theCamera->attach( osg::Camera::COLOR_BUFFER, fboImage);

   osg::Camera::RenderTargetImplementation renderImplementation;
   renderImplementation = osg::Camera::FRAME_BUFFER_OBJECT;

   // tell the camera to use OpenGL frame buffer object where supported.
   theCamera->setRenderTargetImplementation(renderImplementation);

   // set the post render callback
   theCamera->setPostDrawCallback(wc->cameraPostRenderCB);
   .
   .
   .


Thanks,
-Jon Goldman
Sandia National Laboratories
Albuquerque, New Mexico


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

Reply via email to