I think you could use a Pixel Buffer(Pbuffer) for better compability. Check out the osgprerender example. Basically you use PIXEL_BUFFER_RTT or PIXEL_BUFFER instead of FRAME_BUFFER_OBJECT. But from Roberts answer I understand that this shouldn't be necessary.
FBO:s allow for several attachment points so you need to tell the camera object to which you want to attach your texture. DEPTH_BUFFER, STENCIL_BUFFER, COLOR_BUFFER, COLOR_BUFFER0, . . COLOR_BUFFER7 CameraNode::FRAME_BUFFER, CameraNode::FRAME_BUFFER_FBO etc is the render target implementation. In other words it tells OSG which of the possible methods (FBO:s, pbuffers, etc) to use. Check out these slides from nvidia explaining pbuffers and FBO:s, pros and cons: http://http.download.nvidia.com/developer/presentations/2005/GDC/OpenGL_Day/OpenGL_FrameBuffer_Object.pdf > ----- Original Message ----- > From: "Robert Osfield" <[EMAIL PROTECTED]> > To: "OpenSceneGraph Users" <[email protected]> > Subject: Re: [osg-users] Frame Buffer Object > Date: Thu, 29 Nov 2007 16:23:17 +0000 > > > Hi Zhangguilian, > > The RTT support in osg::Camera (Node) is designed to be able to cope > well when the desired target implementation is not available - it uses > a fallback mechanism. > > RTT support has steadily improved so you may well find that things > just work better in OSG-2.2. > > Robert. > > On Nov 29, 2007 3:04 PM, zhangguilian <[EMAIL PROTECTED]> wrote: > > > > > > Hello, > > I want to use Render To Texture in an algorithm of reflection, I have read > > some osg1.2 examples using RTT such as: > > > > // set the camera to render before the main camera. > > camera->setRenderOrder(osg::CameraNode::PRE_RENDER); > > > > // tell the camera to use OpenGL frame buffer object where > > supported. > > > > camera->setRenderTargetImplementation(osg::CameraNode::FRAME_BUFFER_OBJECT); > > > > // attach the texture and use it as the color buffer. > > camera->attach(osg::CameraNode::COLOR_BUFFER, texture); > > > > My reflection algorithm works well on the machines that support FBO,but > > has no effect on the machines that cann't support FBO, > > I am trying to solve this problem by replacing all the parameters of > > setRenderTargetImplementation including FRAME_BUFFER, but still cann't > > solve, > > Is it because the frame buffer is cleared in the steps afterwards on thoes > > machines that don't support FBO? > > I don't know the relationship between the parameter > > "osg::CameraNode::COLOR_BUFFER" of attach and the parameter > > "osg::CameraNode::FRAME_BUFFER" > > of setRenderTargetImplementation, and what's the relationship of these two > > functions? > > And I am eager to know how can I make the reflection algorithm work well on > > machines without FBO, > > Copy the data from framebuffer to texture(or image) > > somewhere(osg::CameraNoded:: DrawCallback?)? > > > > Thanks very much! > > ________________________________ > > > > zhangguilian > > 2007-11-29 > > _______________________________________________ > > 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

