glReadPixels()具有重叠纹理的alpha

时间:2012-09-07 18:49:13

标签: opengl opengl-es textures alpha glreadpixels

我试图用glReadPixel()获取纹理的alpha值。我遇到的问题是,一旦alpha值像素低于0.5f,它就开始组合背景对象的alpha值。我永远不会得到0.0f到0.49999f的alpha值。有没有办法忽略任何背景对象的alpha值,并获得顶部纹理或对象的1像素alpha值?

enter image description here

std::vector< float > pixels( 1 * 1 * 4 );
glReadPixels(mouse.x,mouse.y,1,1,GL_RGBA,GL_FLOAT,&pixels[0]);

printf("alpha value = %f", pixels[3]);

1 个答案:

答案 0 :(得分:4)

  

我试图用glReadPixel()

获取纹理的alpha值

glReadPixels从帧缓冲区返回数据,而不是纹理。因此,您可以接受所有渲染的产品(以及当时使用的混合功能)。

我怀疑你在试图解决的问题上走错了路。