27 lines
825 B
GLSL
27 lines
825 B
GLSL
#version 300 es
|
|
precision highp float;
|
|
|
|
in vec2 v_texcoord;
|
|
uniform sampler2D tex;
|
|
out vec4 fragColor;
|
|
|
|
// Farben satter machen (Stärke: positiv = mehr, negativ = weniger)
|
|
const vec3 Balance = vec3(1.0, 1.0, 1.0);
|
|
const float Strength = 0.3;
|
|
const vec3 VIB_coeffVibrance = Balance * -Strength;
|
|
|
|
void main() {
|
|
vec4 pixColor = texture(tex, v_texcoord);
|
|
vec3 color = pixColor.rgb;
|
|
|
|
vec3 VIB_coefLuma = vec3(0.212656, 0.715158, 0.072186);
|
|
float luma = dot(VIB_coefLuma, color);
|
|
|
|
float max_color = max(color.r, max(color.g, color.b));
|
|
float min_color = min(color.r, min(color.g, color.b));
|
|
float color_saturation = max_color - min_color;
|
|
|
|
vec3 p_col = (sign(VIB_coeffVibrance) * color_saturation - 1.0) * VIB_coeffVibrance + 1.0;
|
|
fragColor = vec4(mix(vec3(luma), color, p_col), pixColor.a);
|
|
}
|