#version 330 core out vec4 FragColor; in vec3 ourColor; in vec2 TexCoord; // texture sampler uniform sampler2D background; uniform sampler2D human; vec4 bgr2rgb(vec4 color) { return vec4(color.b, color.g, color.r, color.a); } void main() { vec2 flippedTexCoords = vec2(TexCoord.x, 1.0 - TexCoord.y); vec4 humanColor = texture(human, flippedTexCoords); humanColor = bgr2rgb(humanColor); vec4 backgroundColor = texture(background, flippedTexCoords); FragColor = mix(backgroundColor, humanColor, humanColor.a); }