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, 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_OBJ
RTTcamera->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

Reply via email to