Imágenes y máscara en OpenGL ES 2.0.

Estoy aprendiendo OpenGL ES 2.0 y me gustaría crear una aplicación para comprender mejor cómo funciona. La aplicación tiene un conjunto de filtros que el usuario puede aplicar a las imágenes (lo sé, nada nuevo: P).

Uno de este filtro toma dos imágenes y una máscara y mezcla las dos imágenes mostrándolas a través de la máscara (aquí hay una imagen para explicar mejor lo que quiero obtener)

En este momento estoy realmente confundido y no sé por dónde empezar a crear este efecto. No puedo entender si tengo que trabajar con múltiples texturas y múltiples FrameBuffers o simplemente puedo trabajar con un solo sombreador.

¿Tiene algún consejo que me ayude a hacer este proyecto?

EDITAR--------

He encontrado esta solución, pero cuando uso líneas de máscara en lugar de círculos, el resultado es realmente "sucio", especialmente si las líneas están rotadas.

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

¿Es probable que sea mejor usar el tampón Stencil o la mezcla?

Respuestas a la pregunta(2)

Su respuesta a la pregunta