1

glReadPixel() でテクスチャのアルファ値を取得しようとしています。私が抱えている問題は、アルファ値のピクセルが 0.5f を下回ると、背景オブジェクトのアルファ値を結合し始めることです。0.0f から 0.49999f までのアルファ値を取得できません。背景オブジェクトのアルファ値を無視して、一番上のテクスチャまたはオブジェクトの 1 ピクセルのアルファ値だけを取得する方法はありますか?

ここに画像の説明を入力

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]);
4

1 に答える 1

4

glReadPixel() でテクスチャのアルファ値を取得しようとしています

glReadPixels は、テクスチャではなく、フレーム バッファからデータを返します。そのため、レンダリングされたすべてのもの (およびその時点で使用されていたブレンド関数) の産物に翻弄されます。

解決しようとしている問題が何であれ、あなたは間違った方向に進んでいると思います。

于 2012-09-07T18:56:31.737 に答える