<div dir="ltr"><br clear="all"><div>Hi,</div><div><br></div><div>I am trying to render to texture and read the results with an osg::Image. When I use standard internal formats like GL_RGB it works ok. The problem appears when I try to for example use GL_FLOAT with GL_RGB16, etc.</div><div><br></div><div>When I get my image back the internal format is not what I want (the one that I set up in the texture) and I see errors like:</div><div><br></div><div>error pixelFormat = 805b<br></div><div>ContextData::incrementContextIDUsageCount(0) to 2</div><div>Warning: detected OpenGL error 'invalid value' at after stateset.compileGLObjects in GLObjectsVisitor::apply(osg::StateSet& stateset)<br></div><div><br></div><div>Here is my PBO setup code:</div><div><br></div><div>osg::Camera::RenderTargetImplementation renderTargetImplementation = renderTargetImplementation = osg::Camera::PIXEL_BUFFER;<br><br>    _camera->setName(label);<br>    // viewport set in configure() method<br>    _camera->setClearColor(osg::Vec4(0., 1., 1., 1.));<br>    _camera->setClearMask(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);<br>    _camera->setReferenceFrame(osg::Transform::ABSOLUTE_RF);<br>    _camera->setRenderOrder(osg::Camera::POST_RENDER);<br>    _camera->setRenderTargetImplementation(renderTargetImplementation);<br>    _camera->setViewport(new osg::Viewport(0,0,viewport_size.x(), viewport_size.y()));<br>    _camera->getOrCreateStateSet()->setAttribute(new osg::ClampColor(GL_FALSE, GL_FALSE, GL_FALSE), <br>    osg::StateAttribute::ON | osg::StateAttribute::OVERRIDE | osg::StateAttribute::PROTECTED);<br></div><div><br></div><div>// Render to texture<br>    _texture = new osg::Texture2D();<br>    _texture->setTextureSize(viewport_size.x(), viewport_size.y());<br>    _texture->setInternalFormat(GL_RGB16);<br>    _texture->setSourceType(GL_FLOAT);<br>    _texture->setSourceFormat(GL_RGB); <br>    _texture->setFilter(osg::Texture::MIN_FILTER,osg::Texture::NEAREST);<br>    _texture->setFilter(osg::Texture::MAG_FILTER,osg::Texture::NEAREST);<br>    _texture->setWrap(osg::Texture::WRAP_S,osg::Texture::CLAMP_TO_EDGE);<br>    _texture->setWrap(osg::Texture::WRAP_T,osg::Texture::CLAMP_TO_EDGE);<br>    _texture->setWrap(osg::Texture::WRAP_R,osg::Texture::CLAMP_TO_EDGE);<br><br>    // attach the texture and use it as the color buffer.<br>    _camera->attach(osg::Camera::COLOR_BUFFER, _texture);<br></div><div><br></div><div>I am also having trouble with clamped values, when it does work, values are clamped in the range [0,1] although I have disabled clamping.</div><div><br></div><div>Anyone knows how to setup a PBO to read unclamped values in non-standard formats (GL_RGBUI16, GL_RGB16F...)?</div><div><br></div><div>Is this supported in OSG?</div><div><br></div><div>Cheers,</div><div><br></div><div>Omar.</div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div style="color:#1a1a1a;font-family:Source Sans Pro,Arial,sans-serif!important"><table><tbody> 
  </tbody></table>
</div>
</div></div>