EDIT 1:含まれるシェーダー
EDIT 2:含まれるスクリーンショット
EDIT 3 : 元のテクスチャのスクリーンショットが含まれています
編集4:
EDIT 5 :問題は、ビットマップに最初から部分的に透明なピクセルがあるためだと思うので、ここで与えられた答えがこの質問に対して正しいので、新しい質問をします。
よく調べてみると、問題が完全に解決されたようには見えず、色が正しく見えません。
String strFShader =
"precision mediump float;" +
"uniform float Opacity;" +
"varying vec2 v_texCoords;" +
"uniform sampler2D u_baseMap;" +
"void main()" +
"{" +
"gl_FragColor = texture2D(u_baseMap, v_texCoords);" +
"gl_FragColor.a *= Opacity;"+
"}";
そして、私のレンダリング方法では:
//Enable and set mode
GLES20.glEnable(GLES20.GL_BLEND);
GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA, GLES20.GL_ONE_MINUS_SRC_ALPHA);
//Draw
GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4);
//Disable
GLES20.glDisable(GLES20.GL_BLEND);
したがって、最大の透明度 (0.0) で問題ありません。つまり、何も描画されません。ただし、他のレベルではまったく正しくありません。たとえば、透明度がゼロ (不透明度が 1.0 に設定) の場合、次のようになります。
![ここに画像の説明を入力][1]
しかし、実際には次のようになります。
![ここに画像の説明を入力][2]
色が少し暗すぎるように見え、(元の画像では) わずかに暗いエッジが非常に目立ちます。
ブレンドモードと関係があると思いますか?基本的に、あるレイヤーの不透明度を別のレイヤーに変更するときにフォトショップで得られる可能性のある効果を求めているだけです。他の提案は非常に役に立ちます。
ここにある解決策も試しました:
しかし、私は同じ結果を得ますか?
ありがとう :-)