phaser4-rex-plugins
Version:
42 lines (34 loc) • 868 B
JavaScript
const frag = `\
precision highmedp float;
// Scene buffer
uniform sampler2D uMainSampler;
varying vec2 outTexCoord;
// Effect parameters
uniform vec4 config;
uniform vec2 texSize;
uniform vec2 center;
void main (void) {
float shrinkMode = config.x;
float radius = config.y;
float power = config.z;
float intensity = config.w;
vec2 tc = outTexCoord * texSize;
tc -= center;
float dist = length(tc) / radius;
float factor = pow(dist, power);
if (shrinkMode > 0.0) {
factor = 1.0 / factor;
}
tc *= mix(1.0, factor, intensity);
tc += center;
gl_FragColor = texture2D(uMainSampler, tc / texSize);
}
`;
export default frag;