playcanvas
Version:
PlayCanvas WebGL game engine
18 lines (16 loc) • 578 B
JavaScript
var falloffInvSquaredPS = `
float getFalloffWindow(float lightRadius, vec3 lightDir) {
float sqrDist = dot(lightDir, lightDir);
float invRadius = 1.0 / lightRadius;
return square(saturate(1.0 - square(sqrDist * square(invRadius))));
}
float getFalloffInvSquared(float lightRadius, vec3 lightDir) {
float sqrDist = dot(lightDir, lightDir);
float falloff = 1.0 / (sqrDist + 1.0);
float invRadius = 1.0 / lightRadius;
falloff *= 16.0;
falloff *= square(saturate(1.0 - square(sqrDist * square(invRadius))));
return falloff;
}
`;
export { falloffInvSquaredPS as default };