0

半透明で、場所によって不透明度が異なるテクスチャがあります。メインのテクスチャビットマップとマスクビットマップがあります。プログラムが実行されると、マスクビットマップのアルファ値がメインテクスチャビットマップのアルファ値にロードされます。透明にしたい領域の値は255アルファで、完全に不透明にしておきたい領域の値は0アルファです。中間の透明度にも中間の値があります。

あらゆる種類のglBlendFunc()設定を試しましたが、完全に見えないか、ソーステクスチャのRGBカラーに作用します。

4

2 に答える 2

4

通常、OpenGLでは、0は透明、255は不透明を意味します。これは、あなたが持っているのとは逆です。

だから次のようなもの:

glBlendFunc(GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA);

動作するはずです。

于 2010-12-13T14:50:01.017 に答える
0

私も同じ問題を抱えていました。SDL_Image画像の読み込みに使用していました。SDL_DisplayFormatの代わりに使用していた画像を変換しているときに気づきましたSDL_DisplayFormatAlpha。これで私の問題は解決しました。

于 2012-08-17T20:29:18.100 に答える