playcanvas
Version:
Open-source WebGL/WebGPU 3D engine for the web
26 lines (23 loc) • 685 B
JavaScript
var compose_vignette_default = `
uniform vec4 vignetterParams;
uniform vec3 vignetteColor;
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 mix(vignetteColor, color, calcVignette(uv));
}
`;
export {
compose_vignette_default as default
};