From 676a795d6eae1f01eb34234abed209b01b7251a6 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Thu, 31 Jan 2019 03:30:26 +1100 Subject: [PATCH] more accurate opacity fix --- effects/internal/blending.frag | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/effects/internal/blending.frag b/effects/internal/blending.frag index b211aa801..c8d14d593 100644 --- a/effects/internal/blending.frag +++ b/effects/internal/blending.frag @@ -180,7 +180,7 @@ void main(void) { vec3 composite = blend(bg_color.rgb, fg_color.rgb); // add foreground and background alpha's together - float alpha_opac = fg_color.a*opacity; + // float alpha_opac = fg_color.a*opacity; if (blendmode == BLEND_MODE_OVERLAY || blendmode == BLEND_MODE_LIGHTEN @@ -194,13 +194,13 @@ void main(void) { || blendmode == BLEND_MODE_REFLECT || blendmode == BLEND_MODE_EXCLUSION || blendmode == BLEND_MODE_DIFFERENCE) { - composite *= alpha_opac; + composite *= fg_color.a; } - vec4 full_composite = vec4(composite + bg_color.rgb*(1.0-alpha_opac), bg_color.a + fg_color.a); + vec4 full_composite = vec4(composite + bg_color.rgb*(1.0-fg_color.a), bg_color.a + fg_color.a); // vec4 full_composite = vec4(mix(bg_color.rgb, composite, alpha_opac), bg_color.a + alpha_opac); - full_composite = mix(bg_color, full_composite, alpha_opac); + full_composite = mix(bg_color, full_composite, opacity); // output to color gl_FragColor = full_composite;