UNPKG

phaser

Version:

A fast, free and fun HTML5 Game Framework for Desktop and Mobile web browsers from the team at Phaser Studio Inc.

32 lines (31 loc) 1.08 kB
module.exports = [ '#pragma phaserTemplate(shaderName)', 'precision mediump float;', 'uniform sampler2D uMainSampler;', 'varying vec2 outTexCoord;', 'uniform vec2 lightPosition;', 'uniform vec4 color;', 'uniform float decay;', 'uniform float power;', 'uniform float intensity;', 'uniform int samples;', 'const int MAX = 12;', '#pragma phaserTemplate(fragmentHeader)', 'void main ()', '{', ' vec4 texture = boundedSampler(uMainSampler, outTexCoord);', ' vec2 pc = (lightPosition - outTexCoord) * intensity;', ' float shadow = 0.0;', ' float limit = max(float(MAX), float(samples));', ' for (int i = 0; i < MAX; ++i)', ' {', ' if (i >= samples)', ' {', ' break;', ' }', ' shadow += boundedSampler(uMainSampler, outTexCoord + float(i) * decay / limit * pc).a * power;', ' }', ' float mask = 1.0 - texture.a;', ' gl_FragColor = mix(texture, color, clamp(shadow * mask, 0.0, 1.0));', '}', ].join('\n');