phaser4-rex-plugins
Version:
46 lines (37 loc) • 909 B
JavaScript
const frag = `\
precision highmedp float;
// Scene buffer
uniform sampler2D uMainSampler;
varying vec2 outTexCoord;
// Effect parameters
uniform vec3 config;
uniform vec2 texSize;
uniform vec2 center;
void main (void) {
float mode = config.x;
float radius = config.y;
float intensity = config.z;
vec2 tc = outTexCoord * texSize;
tc -= center;
float dist = length(tc) / radius;
if (dist < 1.0) {
float factor;
if (mode > 0.0) {
factor = sin(dist * 1.570795);
} else {
factor = asin(dist) / 1.570795;
}
tc *= mix(1.0, factor, intensity);
}
tc += center;
gl_FragColor = texture2D(uMainSampler, tc / texSize);
}
`;
export default frag;