playcanvas
Version:
PlayCanvas WebGL game engine
24 lines (20 loc) • 622 B
JavaScript
var composeVignettePS = `
uniform vec4 vignetterParams;
float dVignette;
float calcVignette(vec2 uv) {
float inner = vignetterParams.x;
float outer = vignetterParams.y;
float curvature = vignetterParams.z;
float intensity = vignetterParams.w;
vec2 curve = pow(abs(uv * 2.0 -1.0), vec2(1.0 / curvature));
float edge = pow(length(curve), curvature);
dVignette = 1.0 - intensity * smoothstep(inner, outer, edge);
return dVignette;
}
vec3 applyVignette(vec3 color, vec2 uv) {
return color * calcVignette(uv);
}
`;
export { composeVignettePS as default };