0

私がインターネットで見てきたことから、この問題は私のアプローチでは本当に解決することはできません。

私は現在、シーン内のすべてのオブジェクトに対して選択バッファーパスを使用するプログラムを作成しています。ただし、オブジェクトの1つは、その大部分がアルファ0であるテクスチャです。レンダリング時には正常に機能し、アルファ値は表示されませんが、選択モードでは、アルファテストはスキップされ、マウスを上に置きます。透明な領域は、背後にあるものではなく、オブジェクトを選択します。

選択モードでアルファテストを有効にする方法はありますか?

4

2 に答える 2

1

あなたが言いたいのは、アルファブレンディングがスキップされているということだと思います。私はそれをテストしていませんが、ここのコメントから、アルファテストがまだGL_SELECTモードで使用されているようです。したがって、glEnable(GL_ALPHA_TEST) を使用してから、glAlphaFunc() を使用して、ヒットを構成するアルファの量のしきい値を設定します。これらのオブジェクトを盲目的に選択する前にテストするには、レンダリングするだけです。OpenGL がポリゴンの一部のみをレンダリングすることがわかります。その部分のいずれかがクリックを構成しますが、描画されていない部分はGL_SELECTでヒットしません。

コメントして、それがどのように機能するか教えてください。それでも動作しない場合は、時間をかけてテスト ケースを作成できますが、自分で動作させることができる場合は、時間を費やしたくありません。:)

また、参考までに、Alpha テストの OpenGL ドキュメントglAlphaFunc のマンページを参照してください

于 2009-07-28T13:29:40.680 に答える
0

glReadPixels が探しているもののようです

http://www.opengl.org/sdk/docs/man/xhtml/glReadPixels.xml

次のようなものを使用します。

glReadPixels (0, 0, XSCREEN, YSCREEN, GL_ALPHA, GL_UNSIGNED_BYTE, buffer);
于 2009-07-27T19:28:28.693 に答える