Não sei mais se é relevante, mas a resposta de Doug acertou
Eu só queria acrescentar que eu mesmo consegui recriar as animações exatamente como elas são construídas no jogo usando os mesmos recursos, dê uma olhada aqui
Magni :
precision highp float;
uniform float uTime;
uniform sampler2D uSampler0;
uniform sampler2D uSampler1;
uniform sampler2D uSampler2;
uniform sampler2D uSampler3;
uniform sampler2D uSampler4;
uniform sampler2D uSampler5;
varying vec2 texCoords;
void main(void) {
float t = uTime;
vec3 mask = texture2D(uSampler1,texCoords).rgb;
vec4 img = texture2D(uSampler0,texCoords);
img.rg*=1.1;
vec2 flow = texture2D(uSampler3,texCoords).gr;
flow.y+=t*3.;
vec4 plas = texture2D(uSampler2,flow*1.2) * mask.r;
plas *= 15.5;
plas *= vec4(0.239, 0.224,0.488,1.);
vec2 ct = texCoords;
ct.y -=t*0.5;
vec4 clouds = texture2D(uSampler4,ct*2.);
float clouds_a = clouds.a;
clouds *= 4.5;
clouds *= vec4(0.275,0.23,0.161,1.);
clouds_a *= mask.b;
img += clouds * mask.b;
img += plas * mask.r ;
img += (sin(t*15.)+1.) * mask.g * vec4(0.239, 0.224,0.488,1.)*2.;
ct.x += t * 0.5;
vec4 clouds_overall = texture2D(uSampler5,ct * 0.5);
clouds_overall *= vec4(0.275,0.23,0.161,1.);
gl_FragColor = img +clouds_overall;
}
Medivh :
precision highp float;
uniform float uTime;
uniform sampler2D uSampler0;
uniform sampler2D uSampler1;
uniform sampler2D uSampler2;
uniform sampler2D uSampler3;
uniform sampler2D uSampler4;
uniform sampler2D uSampler5;
varying vec2 texCoords;
void main(void) {
float t = uTime;
vec2 tc = texCoords;
tc.x-=t*2.;
vec4 mask = texture2D(uSampler1,texCoords);
float bump = texture2D(uSampler4,tc*0.5).r;
vec4 img = texture2D(uSampler0,vec2(texCoords.x,texCoords.y+bump* 0.055 * mask.g));
tc = texCoords;
tc.x-=0.05;
tc.y+= 0.05;
vec2 flow = texture2D(uSampler3,tc).rg;
flow.y+=t;
flow.y*=2.;
vec4 plasma = texture2D(uSampler2,flow*1.5);
plasma.rgb *= vec3(0.52,0.26,0.54);
plasma *= 3.;
flow = texture2D(uSampler5,texCoords).rg;
flow.g+=t;
vec4 plasma2 = texture2D(uSampler2,flow);
plasma2 *= 4.;
plasma2.rgb *= vec3(0.52,0.26,0.54);
gl_FragColor =img+plasma*mask.r+bump*mask.a*0.35+plasma2*mask.b;
}