我正在尝试使用 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]);