27 lines
647 B
GLSL
27 lines
647 B
GLSL
#version 110
|
|
|
|
uniform sampler2D sceneTex; // 0
|
|
uniform float lensRadiusX;
|
|
uniform float lensRadiusY;
|
|
uniform bool circular;
|
|
uniform vec2 resolution;
|
|
// uniform vec2 lensRadius; // 0.45, 0.38
|
|
|
|
varying vec2 vTexCoord;
|
|
|
|
void main(void) {
|
|
if (lensRadiusX == 0.0) {
|
|
discard;
|
|
}
|
|
vec4 c = texture2D(sceneTex, vTexCoord);
|
|
vec2 vignetteCoord = vTexCoord;
|
|
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,0.5));
|
|
float size = (lensRadiusX*0.01);
|
|
c *= smoothstep(size, size*0.99*(1.0-lensRadiusY*0.01), dist);
|
|
gl_FragColor = c;
|
|
} |