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