X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=vignette_effect.frag;fp=vignette_effect.frag;h=bc84516437685727301a7f512f0f9aba911cd724;hp=0000000000000000000000000000000000000000;hb=d4542f76df5d26843c68b1467e76722cffd801a1;hpb=873b60b640a96c8fb4c2d8c88c85d20e0a2dca6b diff --git a/vignette_effect.frag b/vignette_effect.frag new file mode 100644 index 0000000..bc84516 --- /dev/null +++ b/vignette_effect.frag @@ -0,0 +1,18 @@ +// A simple, circular vignette, with a cos² falloff. + +uniform float PREFIX(inv_radius); +uniform vec2 PREFIX(aspect_correction); + +vec4 FUNCNAME(vec2 tc) { + vec4 x = LAST_INPUT(tc); + + const float pihalf = 0.5 * 3.14159265358979324; + + vec2 normalized_pos = (tc - PREFIX(center)) * PREFIX(aspect_correction); + float dist = (length(normalized_pos) - PREFIX(inner_radius)) * PREFIX(inv_radius); + float linear_falloff = clamp(dist, 0.0, 1.0) * pihalf; + float falloff = cos(linear_falloff) * cos(linear_falloff); + x.rgb *= vec3(falloff); + + return x; +}