私は OpenGL ES 2.0 を学んでおり、それがどのように機能するかをよりよく理解するためにアプリを作成したいと考えています。アプリには、ユーザーが画像に適用できる一連のフィルターがあります (私は知っていますが、新しいものは何もありません:P)。
このフィルターの 1 つは 2 つの画像と 1 つのマスクを取り、マスクを通してそれらを示す 2 つの画像を混合します (ここでは、取得したいものをよりよく説明するための画像)
現時点では、私は本当に混乱しており、この効果を作成するためにどこから始めればよいかわかりません. 複数のテクスチャと複数の FrameBuffer を使用する必要があるのか、それとも 1 つのシェーダーだけで作業できるのかがわかりません。
このプロジェクトを行う際に役立つヒントはありますか?
編集 - - - -
私はこの解決策を見つけましたが、円の代わりにマスク線として使用すると、特に線が回転している場合、結果は本当に「汚れた」ものになります。
precision highp float;
varying vec4 FragColor;
varying highp vec2 TexCoordOut;
uniform sampler2D textureA;
uniform sampler2D textureB;
uniform sampler2D mask;
void main(void){
vec4 mask_color = texture2D(mask, TexCoordOut);
if (mask_color.a > 0.0){
gl_FragColor = texture2D(textureA, TexCoordOut);
}else {
gl_FragColor = texture2D(textureB, TexCoordOut);
}
}
Stencil バッファまたはブレンディングのどちらを使用する方がよいのでしょうか?