Hi Aurelien, Try using more modest values for the sampleBuffers and samples values when you are setting up the graphics context. BTW, you won't need a multi-sampled graphics context to use multi-sampling on the FBO and visa-versa, these are decoupled and you can mix and match them.
Robert. On 25 January 2012 22:10, Aurelien Albert <[email protected]> wrote: > Hi, > > I use a camera to render my main graph to an FBO. > Then I render this FBO to screen with another camera and a quad. > > Like this : > > > Code: > Main camera (render to FBO) > | > |-- Main graph > | > |--- Camera (render to screen) > | > |- Quad > > > > > I try to setup multisampling for the main camera : > > > Code: > p_camera->setRenderTargetImplementation(osg::Camera::FRAME_BUFFER_OBJECT); > p_camera->attach(osg::Camera::COLOR_BUFFER, p_renderTextureColor, 0, 0, > false, 4, 4); > p_camera->attach(osg::Camera::DEPTH_BUFFER, p_renderTextureDepth, 0, 0, > false, 4, 4); > > > > > I also try to set "sampleBuffers" and "samples" on the traits before creating > context, but all I get is a black screen. > > When I render to screen, MSAA works great, but how to configure it for a FBO > target ? > > My textures are created as follow : > > > Code: > // Main color texture > p_renderTextureColor = new osg::Texture2D(); > p_renderTextureColor->setTextureSize(p_osgViewport->width(), > p_osgViewport->height()); > p_renderTextureColor->setInternalFormat(GL_RGBA32F_ARB); > p_renderTextureColor->setSourceFormat(GL_RGBA); > p_renderTextureColor->setSourceType(GL_FLOAT); > p_renderTextureColor->setFilter(osg::Texture2D::MIN_FILTER, > osg::Texture2D::NEAREST); > p_renderTextureColor->setFilter(osg::Texture2D::MAG_FILTER, > osg::Texture2D::NEAREST); > p_renderTextureDepth->setWrap(osg::Texture::WRAP_S, > osg::Texture::CLAMP_TO_EDGE); > p_renderTextureDepth->setWrap(osg::Texture::WRAP_T, > osg::Texture::CLAMP_TO_EDGE); > > // Main depth texture > p_renderTextureDepth = new osg::Texture2D(); > p_renderTextureDepth->setTextureSize(p_osgViewport->width(), > p_osgViewport->height()); > p_renderTextureDepth->setSourceFormat(GL_DEPTH_COMPONENT); > p_renderTextureDepth->setSourceType(GL_FLOAT); > p_renderTextureDepth->setInternalFormat(GL_DEPTH_COMPONENT32F); > p_renderTextureDepth->setFilter(osg::Texture2D::MIN_FILTER, > osg::Texture2D::NEAREST); > p_renderTextureDepth->setFilter(osg::Texture2D::MAG_FILTER, > osg::Texture2D::NEAREST); > p_renderTextureDepth->setWrap(osg::Texture::WRAP_S, > osg::Texture::CLAMP_TO_EDGE); > p_renderTextureDepth->setWrap(osg::Texture::WRAP_T, > osg::Texture::CLAMP_TO_EDGE); > > > > > Any help would be greatly appreciated. > > Aurelien > > ------------------ > Read this topic online here: > http://forum.openscenegraph.org/viewtopic.php?p=45024#45024 > > > > > > _______________________________________________ > 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

