The camera has to be somewhere in the scenegraph under the root.
Something like this:

         Root
     /            \
RTTCamera  Node1
     \            /
        World

Set the uniforms that you currently set at the Root in Node1 instead and
they will not be used when rendering with the RTTCamera.

/Andreas

2008/11/7 Engvall Åsa <[EMAIL PROTECTED]>

> No, it isn't. Should it be?
> I tried to draw the scenegraph in my first message, but it's not easy just
> using text.
> If you want more code, please tell me.
>
> Åsa
>
> -----Ursprungligt meddelande-----
> Från: [EMAIL PROTECTED] [mailto:
> [EMAIL PROTECTED] För J.P. Delport
> Skickat: den 7 november 2008 09:42
> Till: OpenSceneGraph Users
> Ämne: Re: [osg-users] Render to texture problem
>
> Hi,
>
> is your RTT camera the child of anything? I'm just guessing without having
> an example to run.
>
> jp
>
> Engvall Åsa wrote:
> > I thought that the texture must be in RGBA to be used in a shader. The
> > callback was just for debugging, so I didn't think so much about the
> > format. Now I have changed to RGBA format in the callback too. I have
> > also set the viewer to singlethreaded, using this command:
> > viewer.setThreadingModel(osgViewer::Viewer::SingleThreaded);
> >
> > Unfortunately, the texture is still gray.
> >
> > Åsa
> >
> > -----Ursprungligt meddelande-----
> > Från: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED] För J.P. Delport
> > Skickat: den 7 november 2008 08:22
> > Till: OpenSceneGraph Users
> > Ämne: Re: [osg-users] Render to texture problem
> >
> > Hi,
> >
> > any reason why you have RGBA texture, but RGB in callback?
> >
> > jp
> >
> > Engvall Åsa wrote:
> >> Hi!
> >>
> >> I want to render the scene to a texture and use the texture in a shader.
> >> The texture image is saved to file by a postdraw callback, so I can
> >> look at it. I'm doing something wrong because the texture becomes all
> gray.
> >>
> >> My scene graph looks like this:
> >>
> >> RTT camera      root
> >>        |                 |
> >>        \                /
> >>         world
> >>
> >> The main viewer looks at the root and the shader program is applied
> >> to the root stateset. Below is a code snippet.
> >>
> >> I would be very grateful if somebody could point out what I'm doing
> wrong.
> >> Thanks in advance,
> >>
> >> Åsa Engvall
> >>
> >>
> >> // Create a scene texture.
> >> osg::Texture2D* texture = new osg::Texture2D;
> >> texture->setResizeNonPowerOfTwoHint(false);
> >> texture->setTextureSize(traits->width, traits->height);
> >> texture->setInternalFormat(GL_RGBA);
> >> texture->setFilter(osg::Texture2D::MIN_FILTER,
> >> texture->osg::Texture2D::NEAREST);
> >> texture->setFilter(osg::Texture2D::MAG_FILTER,
> >> texture->osg::Texture2D::NEAREST);
> >> osg::Image* textureImage = new osg::Image;
> >> textureImage->allocateImage(traits->width, traits->height, 1,
> >> textureImage->GL_RGBA,
> >> GL_UNSIGNED_BYTE);
> >> texture->setImage(0, textureImage);
> >>
> >> // Add program and uniforms to the root's stateset.
> >> osg::StateSet* state = root->getOrCreateStateSet();
> >> state->addUniform(numberOfTimeStepsU);
> >> state->addUniform(timeConstantU);
> >> state->addUniform(frameTimeU);
> >> state->addUniform(sceneTextureU);
> >> state->addUniform(prevModelViewMatrixU);
> >> state->addUniform(prevModelViewProjectionMatrixU);
> >> state->setAttributeAndModes(motionBlurProgram,
> >> state->osg::StateAttribute::ON); setTextureAttributeAndModes(0,
> >> state->texture, osg::StateAttribute::ON);
> >>
> >> // Create a camera that renders the scene to a texture.
> >> osg::Camera* RTTcamera = new osg::Camera;
> >> RTTcamera->setReferenceFrame(osg::Transform::ABSOLUTE_RF);
> >> RTTcamera->setClearColor(osg::Vec4(1,1,1,1));
> >> RTTcamera->setClearMask(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
> >> RTTcamera->setViewport(0, 0, traits->width, traits->height);
> >> RTTcamera->setComputeNearFarMode(osg::Camera::DO_NOT_COMPUTE_NEAR_FAR
> >> RTTcamera->) ; setRenderOrder(osg::Camera::PRE_RENDER);
> >> RTTcamera->setRenderTargetImplementation(osg::Camera::FRAME_BUFFER_OB
> >> RTTcamera->J ECT); attach(osg::Camera::COLOR_BUFFER, texture);
> >> RTTcamera->addChild(world); attach(osg::Camera::COLOR_BUFFER,
> >> RTTcamera->textureImage); setPostDrawCallback(new
> >> RTTcamera->ScreenShotCallback(traits->width,
> >> traits->height, *textureImage, GL_RGB, GL_UNSIGNED_BYTE));
> >>
> >>
> >>
> >> ---------------------------------------------------------------------
> >> -
> >> --
> >>
> >> _______________________________________________
> >> osg-users mailing list
> >> osg-users@lists.openscenegraph.org
> >> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.
> >> org
> >
> > --
> > This message is subject to the CSIR's copyright terms and conditions,
> e-mail legal notice, and implemented Open Document Format (ODF) standard.
> > The full disclaimer details can be found at
> http://www.csir.co.za/disclaimer.html.
> >
> > This message has been scanned for viruses and dangerous content by
> MailScanner, and is believed to be clean.  MailScanner thanks Transtec
> Computers for their support.
> >
> > _______________________________________________
> > osg-users mailing list
> > osg-users@lists.openscenegraph.org
> > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.
> > org _______________________________________________
> > osg-users mailing list
> > osg-users@lists.openscenegraph.org
> > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.
> > org
>
> --
> This message is subject to the CSIR's copyright terms and conditions,
> e-mail legal notice, and implemented Open Document Format (ODF) standard.
> The full disclaimer details can be found at
> http://www.csir.co.za/disclaimer.html.
>
> This message has been scanned for viruses and dangerous content by
> MailScanner, and is believed to be clean.  MailScanner thanks Transtec
> Computers for their support.
>
> _______________________________________________
> osg-users mailing list
> osg-users@lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
> _______________________________________________
> osg-users mailing list
> osg-users@lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to