Files
oak-editor/effects/shaders/vignette.frag
T

30 lines
736 B
GLSL

uniform float lensRadiusX;
uniform float lensRadiusY;
uniform float centerX;
uniform float centerY;
uniform bool circular;
uniform vec2 resolution;
uniform bool invert;
// uniform vec2 lensRadius; // 0.45, 0.38
vec4 process(vec4 c) {
if (lensRadiusX == 0.0) {
return vec4(0.0);
}
vec2 vignetteCoord = v_texcoord;
if (circular) {
float ar = (resolution.x/resolution.y);
vignetteCoord.x *= ar;
vignetteCoord.x -= (1.0-(1.0/ar));
}
float dist = distance(vignetteCoord, vec2(0.5 + centerX*0.01, 0.5 + centerY*0.01));
float size = (lensRadiusX*0.01);
if (invert)
{c *= 1.0 - smoothstep(size, size*0.99*(1.0-lensRadiusY*0.01), dist);}
else
{c *= smoothstep(size, size*0.99*(1.0-lensRadiusY*0.01), dist);}
return c;
}