feat: change covert yuv to rgb param

Close #46
This commit is contained in:
rankun 2020-02-29 12:26:29 +08:00
commit fbbe01df22

View file

@ -50,14 +50,18 @@ static QString s_fragShader = R"(
{ {
vec3 yuv; vec3 yuv;
vec3 rgb; vec3 rgb;
// SDL2-2.0.10\src\render\opengl\SDL_shaders_gl.c BT709_SHADER_CONSTANTS
const vec3 Rcoeff = vec3(1.1644, 0.000, 1.7927);
const vec3 Gcoeff = vec3(1.1644, -0.2132, -0.5329);
const vec3 Bcoeff = vec3(1.1644, 2.1124, 0.000);
// 根据指定的纹理textureY和坐标textureOut来采样 // 根据指定的纹理textureY和坐标textureOut来采样
yuv.x = texture2D(textureY, textureOut).r; yuv.x = texture2D(textureY, textureOut).r;
yuv.y = texture2D(textureU, textureOut).r - 0.5; yuv.y = texture2D(textureU, textureOut).r - 0.5;
yuv.z = texture2D(textureV, textureOut).r - 0.5; yuv.z = texture2D(textureV, textureOut).r - 0.5;
// 采样完转为rgb // 采样完转为rgb
rgb = mat3(1.0, 1.0, 1.0, rgb.r = dot(yuv, Rcoeff);
0.0, -0.39465, 2.03211, rgb.g = dot(yuv, Gcoeff);
1.13983, -0.58060, 0.0) * yuv; rgb.b = dot(yuv, Bcoeff);
// 输出颜色值 // 输出颜色值
gl_FragColor = vec4(rgb, 1.0); gl_FragColor = vec4(rgb, 1.0);
} }