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?