taisei/resources/00-taisei.pkgdir/shader/spellcard_intro.frag.glsl
2019-09-14 19:59:06 +03:00

28 lines
622 B
GLSL

#version 330 core
#include "lib/util.glslh"
#include "interface/spellcard.glslh"
void main(void) {
vec2 pos = texCoordRaw;
pos -= origin;
pos.y *= ratio;
float r = length(pos);
float phi = atan(pos.y,pos.x)+t/10.0;
// everything bigger than rmax is not drawn. The sine creates the
// spinning wavy border.
float rmax = 1 + smoothstep(1, 0, t) * sin(t * 40 + 10 * phi);
// now make it grow with time.
rmax *= step(0, t) * t * 1.5;
if(r > rmax) {
discard;
}
vec4 clr = texture(tex, texCoord);
// at the rim, invert colors
fragColor = mix(clr, vec4(1) - vec4(clr.rgb, 0), step(rmax-0.1*sqrt(r),r));
}