]> git.sesse.net Git - movit/blob - vignette_effect.frag
Make the HSV pickers keep the same luminance no matter what the saturation is. Makes...
[movit] / vignette_effect.frag
1 // A simple, circular vignette, with a cosĀ² falloff.
2         
3 uniform float PREFIX(pihalf_div_radius);
4 uniform vec2 PREFIX(aspect_correction);
5
6 vec4 FUNCNAME(vec2 tc) {
7         vec4 x = INPUT(tc);
8
9         const float pihalf = 0.5 * 3.14159265358979324;
10
11         vec2 normalized_pos = (tc - PREFIX(center)) * PREFIX(aspect_correction);
12         float dist = (length(normalized_pos) - PREFIX(inner_radius)) * PREFIX(pihalf_div_radius);
13         float linear_falloff = clamp(dist, 0.0, pihalf);
14         float falloff = cos(linear_falloff) * cos(linear_falloff);
15         x.rgb *= vec3(falloff);
16
17         return x;
18 }