UNPKG

playcanvas

Version:

Open-source WebGL/WebGPU 3D engine for the web

3 lines (2 loc) 1.03 kB
declare const _default: "\n #ifdef VIGNETTE\n uniform vignetterParams: vec4f;\n uniform vignetteColor: vec3f;\n \n // Global variable for debug\n var<private> dVignette: f32;\n \n fn calcVignette(uv: vec2f) -> f32 {\n let inner = uniform.vignetterParams.x;\n let outer = uniform.vignetterParams.y;\n let curvature = uniform.vignetterParams.z;\n let intensity = uniform.vignetterParams.w;\n\n // edge curvature\n let curve = pow(abs(uv * 2.0 - 1.0), vec2f(1.0 / curvature));\n\n // distance to edge\n let edge = pow(length(curve), curvature);\n\n // gradient and intensity\n dVignette = 1.0 - intensity * smoothstep(inner, outer, edge);\n return dVignette;\n }\n\n fn applyVignette(color: vec3f, uv: vec2f) -> vec3f {\n return mix(uniform.vignetteColor, color, calcVignette(uv));\n }\n #endif\n"; export default _default;