Obrazy i maska ​​w OpenGL ES 2.0

Uczę się OpenGL ES 2.0 i chciałbym stworzyć aplikację, aby lepiej zrozumieć, jak to działa. Aplikacja posiada zestaw filtrów, które użytkownik może zastosować na zdjęciach (wiem, nic nowego: P).

Jeden z tych filtrów pobiera dwa obrazy i maskę i miesza dwa obrazy pokazujące je przez maskę (tutaj obraz, aby lepiej wyjaśnić, co chcę uzyskać)

W tej chwili jestem naprawdę zdezorientowany i nie wiem od czego zacząć, aby stworzyć ten efekt. Nie rozumiem, czy muszę pracować z wieloma teksturami i wieloma FrameBufferami, czy mogę po prostu pracować z jednym shaderem.

Czy masz jakąś wskazówkę, aby pomóc mi w realizacji tego projektu?

EDYTOWAĆ--------

Znalazłem to rozwiązanie, ale gdy używam jako linii maski zamiast okręgów, wynik jest naprawdę „grungy”, zwłaszcza jeśli linie są obracane.

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

Czy prawdopodobnie lepiej jest użyć bufora szablonu lub mieszania?

questionAnswers(2)

yourAnswerToTheQuestion