diff options
author | MooglyGuy <MooglyGuy@users.noreply.github.com> | 2022-03-16 18:40:38 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-17 04:40:38 +1100 |
commit | 0ae650ffbb3ae2cf87103074def1e7f51c9c7190 (patch) | |
tree | 5268a39066a9474b1c25b4aeb60f1d8714f195b0 /src/osd | |
parent | 7c7bab4dd0f7aecac4934b46fba18dd6c67d195f (diff) |
-bgfx: Fixed YUV shader to have better brightness balance. [Ryan Holtz] (#9425)
Diffstat (limited to 'src/osd')
-rw-r--r-- | src/osd/modules/render/bgfx/shaders/chains/misc/fs_blit_yuy16.sc | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/osd/modules/render/bgfx/shaders/chains/misc/fs_blit_yuy16.sc b/src/osd/modules/render/bgfx/shaders/chains/misc/fs_blit_yuy16.sc index 91e3c3ed462..af3eb3e3954 100644 --- a/src/osd/modules/render/bgfx/shaders/chains/misc/fs_blit_yuy16.sc +++ b/src/osd/modules/render/bgfx/shaders/chains/misc/fs_blit_yuy16.sc @@ -13,9 +13,10 @@ uniform vec4 u_inv_tex_size0; vec3 ycc_to_rgb(float y, float cb, float cr) { - float r = saturate(y + 1.40200 * (cr - 0.5)); - float g = saturate(y - 0.34414 * (cb - 0.5) - 0.71414 * (cr - 0.5)); - float b = saturate(y + 1.77200 * (cb - 0.5)); + float common = 1.168627 * (y - 0.062745); + float r = saturate(common + 1.603922 * (cr - 0.5)); + float g = saturate(common - 0.392157 * (cb - 0.5) - 0.815686 * (cr - 0.5)); + float b = saturate(common + 2.023529 * (cb - 0.5)); return vec3(r, g, b); } @@ -27,7 +28,7 @@ void main() float mod_val = mod(original_uv.x, 2.0); vec2 rounded_uv = vec2(original_uv.x - mod_val, original_uv.y); vec4 srcpix = texture2D(s_tex, rounded_uv * u_inv_tex_size0.xy + half_texel.x); - + float cr = srcpix.r; float cb = srcpix.b; if (mod_val < 1.0) |