11 #pragma MSP stage(fragment)
14 vec4 incoming = texture(source, texcoord);
15 vec2 r = vertex.xy*coord_scale;
16 float r_sq = dot(r, r);
19 if(r_sq>=optical_range.y)
21 else if(r_sq>=optical_range.x)
23 float r = sqrt(r_sq)-optical.x;
24 float v = (optical.z*acos(r/optical.y)-sqrt(optical.z-r*r)*r);
25 vignette = v/optical.w;
28 float c_sq = 1/(1+r_sq*natural);
29 vignette *= c_sq*c_sq;
31 frag_color = vec4(incoming.rgb*vignette, incoming.a);