6

アルファブレンディングで5349574673ページを見つけましたが、それでも目的の結果を得ることができません。openglを使用してgif/pngファイルを(透明度/半透明度で)正しく表示しようとしています。

これが私の初期化ビットです:

glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); //I've seen this on most tutorials
glDisable(GL_DEPTH_TEST); //it's a 2D game
//...loading matrices and so on

画像に透明度があり、正しく読み込まれていることを確認します。
glBlendFunc(GL_ONE、GL_ONE); 動作しますが、アルファチャネルで何かを実行しているかどうかはわかりません。これは、黒としてレンダリングされるためです=>ブレンディングは動作します
glColor4f(1f、1f、1f、0.3f); うまくいきます、透明なものを描くことができます

PS私はこの例http://lwjgl.org/wiki/index.php?title=Space_Invaders_Example_Gameを学習に使用しています

編集 GIMPや他のテクスチャローダーでエンコードされた他のテクスチャを使用しましたが、正常に動作するようになりました。

4

1 に答える 1

5

ブレンディングの設定は正しいです。ただし、ブレンドを機能させるには、テクスチャにアルファチャネルが含まれている必要があります。もちろん、適切に評価されます。次に、アルファチャネルデータを画像読み込みプロセスで保存する必要があります。画像の読み込みとテクスチャ生成のコードを教えてください。

于 2011-10-25T08:14:03.187 に答える