Bilder und Masken in OpenGL ES 2.0

Ich lerne OpenGL ES 2.0 und möchte eine App erstellen, um besser zu verstehen, wie es funktioniert. Die App verfügt über eine Reihe von Filtern, die der Benutzer auf Bilder anwenden kann (ich weiß, nichts Neues: P).

Einer dieser Filter nimmt zwei Bilder und eine Maske auf und mischt die beiden Bilder durch die Maske (hier ein Bild, um besser zu erklären, was ich erhalten möchte).

Im Moment bin ich sehr verwirrt und weiß nicht, wo ich anfangen soll, diesen Effekt zu erzielen. Ich kann nicht verstehen, ob ich mit mehreren Texturen und mehreren FrameBuffern arbeiten muss oder nur mit einem einzigen Shader.

Haben Sie einen Hinweis, der mir bei diesem Projekt helfen könnte?

BEARBEITEN--------

Ich habe diese Lösung gefunden, aber wenn ich als Maske Linien anstelle von Kreisen verwende, ist das Ergebnis wirklich "grungy", besonders wenn Linien gedreht werden.

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);
    }
}

Ist es wahrscheinlich besser, Stencil Buffer oder Blending zu verwenden?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage