Files
2026-04-18 22:31:51 +02:00

39 lines
855 B
GLSL

uniform sampler2D tex;
uniform sampler2D grain;
const int NPOINTS = 5;
uniform float env;
uniform vec3 pos[NPOINTS];
uniform float intensity[NPOINTS];
uniform float localTime;
uniform float zoom;
const float PI = 3.14159265;
void main()
{
float x = gl_TexCoord[0].s * zoom;
float y = gl_TexCoord[0].t * zoom;
float u = localTime * 0.25;
vec4 color = vec4(0.0);
for (int i = 0; i < 5; i++)
{
vec3 diff = vec3(x, y, 0.0) - pos[i];
float angle = atan(diff.y, diff.x);
float d = env * 1.0; /* length(pos[i]);*/
float t = (d + localTime) * 0.03 ;
float s = u + angle / PI + (float(i) * 0.1);
float dist = length(diff);
vec4 grain = texture2D(grain, vec2(0.5, 0.3 * dist));
color += (texture2D(tex, vec2(s,t)) * grain) * (intensity[i] / (1.0 + 0.2 * dist));
}
gl_FragColor = vec4(color.rgb * 0.6 + 0.4 * env, 1.0);
}