|
目前我通过自己的输入有一个Image对象,其中数据(RGBA)都为0.0~1600.0的浮点数,将其封装到一个纹理对象后,贴到一个平面上,并设置一个FBO相机关联到这个平面,将其COLOR_BUFFER再绑定到另一个Image对象中,但此时通过Image->data()独处的RGBA值都被截断在0.0~1.0之间了,请教一下各位老师,如何处理才能正确地得到正确的浮点值?
用代码的话就是上述流程吧,请指教~~谢谢!
-
-
- osg::Texture2D* tex=new osg::Texture2D;
- tex->setSourceFormat(GL_RGBA);
- tex->setSourceType(GL_FLOAT);
- tex->setInternalFormat(GL_RGBA32F_ARB);
- tex->setFilter(osg::Texture::MIN_FILTER, osg::Texture::LINEAR);
- tex->setFilter(osg::Texture::MAG_FILTER, osg::Texture::LINEAR);
- tex->setTextureSize(128,128);
- tex->setImage(imgSource); //imgSource这是输入了正确浮点值的Image对象
-
- osg::Image* targetImg=new osg::Image; //这是另一个新开辟的Image对象
- targetImg->allocateImage(128,128,1,GL_RGBA,GL_FLOAT);
- targetImg->setInternalTextureFormat(GL_RGBA32F_ARB);
- cam->attach(osg::Camera::COLOR_BUFFER,targetImg);
-
- //但是,最后这个targetImg得出的数据是被截断到0.0~1.0的
复制代码 |
|