2011-11-10 15 views
1

私のGUIコンポーネントをバックグラウンドでブレンドしようとしましたが、シェーダでアルファを1.0に設定しても、ブレンドが本当に奇妙です。OpenGL ES 2.0:アルファブレンドの問題

GL.Enable(All.Blend); 
GL.BlendFunc(All.SrcAlpha, All.One); 

アルファセットで1.0へのボタンは次のようになり(注:ワンボタンが欠落している): はButtons

ピクセルシェーダは単純です

は、私は次のコードでブレンディングを有効にします:ボタンの

varying lowp vec2 textureCoordinates; 
uniform sampler2D texture; 

void main() 
{ 
    gl_FragColor = vec4(texture2D(texture, textureCoordinates).bgr, 1.0); // r and b switched, because the colors are switched???? 
} 

ワン: enter image description here

+0

どうしてシェーダの色を切り替えるのですか? –

+0

ボタンの元の画像を表示できますか? – NickLH

+0

バグレポート(例:http://bugzilla.xamarin.com)に添付されたどこかの場所(例:github)やzipファイルのいずれかでホストされている自己完結型のテストケースを提供できる場合は、今のところ、問題がどこにあるのかを言うことは難しく、同様のものを複製するのは簡単ではありません。 – poupou

答えて

0

Oneの代わりにOneMinusSrcAlphaを使用すると問題が解決します。