phaser
Version:
A fast, free and fun HTML5 Game Framework for Desktop and Mobile web browsers from the team at Phaser Studio Inc.
20 lines (19 loc) • 798 B
JavaScript
module.exports = [
'#define SHADER_NAME PHASER_POINTLIGHT_FS',
'precision mediump float;',
'uniform vec2 uResolution;',
'uniform float uCameraZoom;',
'varying vec4 lightPosition;',
'varying vec4 lightColor;',
'varying float lightRadius;',
'varying float lightAttenuation;',
'void main ()',
'{',
' vec2 center = (lightPosition.xy + 1.0) * (uResolution.xy * 0.5);',
' float distToSurf = length(center - gl_FragCoord.xy);',
' float radius = 1.0 - distToSurf / (lightRadius * uCameraZoom);',
' float intensity = smoothstep(0.0, 1.0, radius * lightAttenuation);',
' vec4 color = vec4(intensity, intensity, intensity, 0.0) * lightColor;',
' gl_FragColor = vec4(color.rgb * lightColor.a, color.a);',
'}',
].join('\n');