Hi, I think internal format GL_RGBA16 normalizes your float values to 0..1 range. Try GL_RGBA16F_ARB instead.
Cheers, Wojtek Lewandowski 2016-10-04 17:00 GMT+02:00 liu ming <81792...@qq.com>: > Hi, > > I want to send a set of data to geometry shader with osg::texture,I've > got a problem:in the geometry shader,I can use glsl function"texelFetch"to > get the texel's values,and use the values to draw a triangle,But the values > is not correct. the values always are "0" or "1",not the original input.It > make me confused. whether the code" texture0->setInternalFormat(GL_RGBA16);" > wrong?How can I get the correctly texel's values? > > The code: > > > Code: > //..... > osg::ref_ptr< osg::StateSet > ss = new osg::StateSet; > osg::Texture1D * texture0 = new osg::Texture1D; > texture0->setDataVariance(osg::Object::DYNAMIC); > osg::ref_ptr<osg::Image> image = new osg::Image; > image->allocateImage( 4, 1, 1, GL_RGB, GL_FLOAT ); > //write data to the image > osg::Vec3* ptr1 = (osg::Vec3*)image->data(); > *ptr1=osg::Vec3( 0.0,0.0,0.0); > *ptr1++; > *ptr1= osg::Vec3( 40.0,0.0,0.0); > *ptr1++; > *ptr1=osg::Vec3( 20.0,0.0,20.0); > > texture0->setImage(image); > texture0->setInternalFormat(GL_RGBA16); > // > osg::ref_ptr< osg::Uniform > sample0 = new osg::Uniform( "data", 0 ); > ss->addUniform(sample0); > ss->setTextureAttributeAndModes(0, > texture0,osg::StateAttribute::ON); > // .... > > //-------------------------- > //geometyr shader code > //------------------------------ > //..... > uniform sampler1D data; > void main() > { > //get the texel's value,but the value is wrong > vec4 C0=vec4(texelFetch(data,0,0).xyz,1.0); > vec4 C1=vec4(texelFetch(data,1,0).xyz,1.0); > vec4 C2=vec4(texelFetch(data,2,0).xyz,1.0); > > //use value to draw a triangle > gl_Position=osg_ModelViewProjectionMatrix*C0; > EmitVertex(); > gl_Position=osg_ModelViewProjectionMatrix*C1; > EmitVertex(); > gl_Position=osg_ModelViewProjectionMatrix*C2; > EmitVertex(); > > EndPrimitive(); > } > > > > Thank you! My english is poor ,sorry. > > Cheers, > liu > > ------------------ > Read this topic online here: > http://forum.openscenegraph.org/viewtopic.php?p=68848#68848 > > > > > > _______________________________________________ > 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