playcanvas
Version:
PlayCanvas WebGL game engine
24 lines (20 loc) • 676 B
JavaScript
var composeVignettePS = `
uniform vignetterParams: vec4f;
var<private> dVignette: f32;
fn calcVignette(uv: vec2f) -> f32 {
let inner = uniform.vignetterParams.x;
let outer = uniform.vignetterParams.y;
let curvature = uniform.vignetterParams.z;
let intensity = uniform.vignetterParams.w;
let curve = pow(abs(uv * 2.0 - 1.0), vec2f(1.0 / curvature));
let edge = pow(length(curve), curvature);
dVignette = 1.0 - intensity * smoothstep(inner, outer, edge);
return dVignette;
}
fn applyVignette(color: vec3f, uv: vec2f) -> vec3f {
return color * calcVignette(uv);
}
`;
export { composeVignettePS as default };