我试图用glReadPixel()获取纹理的alpha值。我遇到的问题是,一旦alpha值像素低于0.5f,它就开始组合背景对象的alpha值。我永远不会得到0.0f到0.49999f的alpha值。有没有办法忽略任何背景对象的alpha值,并获得顶部纹理或对象的1像素alpha值?
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]);
答案 0 :(得分:4)
我试图用glReadPixel()
获取纹理的alpha值
glReadPixels从帧缓冲区返回数据,而不是纹理。因此,您可以接受所有渲染的产品(以及当时使用的混合功能)。
我怀疑你在试图解决的问题上走错了路。