#version 330 core out vec4 FragColor; in vec2 TexCoord; uniform sampler2D textureY; uniform sampler2D textureU; uniform sampler2D textureV; void main(){ vec3 yuv, rgb; vec3 yuv2r = vec3(1.164, 0.0, 1.596); vec3 yuv2g = vec3(1.164, -0.391, -0.813); vec3 yuv2b = vec3(1.164, 2.018, 0.0); yuv.x = texture(textureY, TexCoord).r - 0.0625; yuv.y = texture(textureU, TexCoord).r - 0.5; yuv.z = texture(textureV, TexCoord).r - 0.5; rgb.x = dot(yuv, yuv2r); rgb.y = dot(yuv, yuv2g); rgb.z = dot(yuv, yuv2b); FragColor = vec4(rgb, 1.0); }