** http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=21057
*/
- vec3 ContrastSaturationBrightness(vec3 color, float brt, float sat, float con)
+ vec3 ContrastSaturationBrightness(vec4 color, float brt, float sat, float con)
{
const float AvgLumR = 0.5;
const float AvgLumG = 0.5;
? vec3(0.0722, 0.7152, 0.2126)
: vec3(0.114, 0.587, 0.299);
+ if (color.a > 0.0)
+ color.rgb /= color.a;
+
vec3 AvgLumin = vec3(AvgLumR, AvgLumG, AvgLumB);
- vec3 brtColor = color * brt;
+ vec3 brtColor = color.rgb * brt;
vec3 intensity = vec3(dot(brtColor, LumCoeff));
vec3 satColor = mix(intensity, brtColor, sat);
vec3 conColor = mix(AvgLumin, satColor, con);
+
+ conColor.rgb *= color.a;
+
return conColor;
}
if(levels)
color.rgb = LevelsControl(color.rgb, min_input, gamma, max_input, min_output, max_output);
if(csb)
- color.rgb = ContrastSaturationBrightness(color.rgb, brt, sat, con);
+ color.rgb = ContrastSaturationBrightness(color, brt, sat, con);
if(has_local_key)
color *= texture2D(local_key, gl_TexCoord[1].st).r;
if(has_layer_key)