Julien Valentin wrote:
> Hello,
> I'm using QtCompositeviewer to visualize 2 views:
> -a main scene group with a prerender to texture node camera using FBO and a 
> shader
> -a debug render of the shaded scene prerendered in the texture
> 

The Problem is that  i always have the unshaded result in debugview....
No it's not that : I dont have the unshaded result of prerender but the 
original texture as if the prerender camera didnt draw in the FBO binded 
texture...


Julien Valentin wrote:
> 
> I dont understand as my prerender to texture process work perfectly in a 
> simple viewer application...
> Any advice would be welcome
> 
> My code:
> 
> class prerenderpass{
> Camera * _Camera;
> 
> //output texture
> TextureRectangle* _outputTexture;
> 
> prerenderpass(Node * scene){
> 
> _outputTexture=new 
> TextureRectangle(osgDB::ReadImage("aRGBimagewithdesiredresolution");//avoid 
> details of texture init
> // clearing
>     _Camera->setClearMask(GL_DEPTH_BUFFER_BIT);
> //cam setted as ortho and pre rendering order 0
>     // projection and view
>     _Camera->setProjectionMatrix(osg::Matrix::ortho2D(0,1,0,1));
>     _Camera->setReferenceFrame(osg::Transform::ABSOLUTE_RF);
>     _Camera->setViewMatrix(osg::Matrix::identity());
>     // viewport
>     _Camera->setViewport(0, 0, _TextureWidth, _TextureHeight);
>     _Camera->setRenderOrder(osg::Camera::PRE_RENDER,0);
>     _Camera->setRenderTargetImplementation(osg::Camera::FRAME_BUFFER_OBJECT);
>     _Camera->attach(osg::Camera::BufferComponent(osg::Camera::COLOR_BUFFER), 
> _outputTexture.get());
> 
> update state set in scene in order to use my frag shader....
> 
> _Camera->addChild(scene);
> }
> 
> 
> 
> }
> 
> main(){
> Group allthescene;
> allthescene.addChild(osgDB::load("mainscene"));
> prenrender pass(osgDB::load("object1"));
> allthescene.addChild(prerenderpass.getCamera())
> 
>  cviewer = new CompositeViewerQT ();
> 
> 
>     //////////////MAINVIEW///////////////////
>     mainViewWidget->resize(640,480);
> 
>     mainViewWidget->setObjectName(QString::fromUtf8("mainView"));
> 
>     // setup views as usual
>     osg::ref_ptr<osgViewer::View> view = new osgViewer::View;
>     //allthescene
>     view->setSceneData(allthescene);
> //perspective
> view->getCamera()->setProjectionMatrixAsPerspective(30.0f, 
> static_cast<double>(640)/static_cast<double>(480), 1.0, 1000.0);
>     view->getCamera()->setViewport(new osg::Viewport(0,0,640,480));
>     view->addEventHandler(new osgViewer::StatsHandler);
>     view->setCameraManipulator(new osgGA::TrackballManipulator);
>     view->getCamera()->setGraphicsContext(mainViewWidget->getGraphicsWindow 
> ());
> 
>     cviewer->addView(view);
> 
> 
> //get Texture from prerender pass
> osg::TextureRectangle *pretex=  _prerenderpass->getOutputTexture().get();
> //create an orthoView of a textured quad using this texture
> osgViewer::View debugview=createViewWithTexturedQuad(pretex);
> 
>     cviewer->addView(debugview);
> 
> }
> 
>  ------------------
> Post generated by Mail2Forum

> 


------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=24299#24299





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

Reply via email to