uniform int n_particles; uniform vec2 particles[400]; float d_sq; void main (void) { particles[n_particles]; //if (particles.length() != n_particles) return; vec2 origin; origin.x = 0.0; origin.y = 0.0; float color_factor = 1.0; for(int n = 0; n < n_particles; n++) { // calc distance vec2 a = particles[n]; vec4 b = gl_TexCoord[0]; float d_sq = (a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y); //float d_sq = distance_sq(particles[n], gl_TexCoord[0]); color_factor *= d_sq; } color_factor *= 10000000.0; color_factor *= (2.0 + gl_TexCoord[0].y); color_factor *= (2.0 + gl_TexCoord[0].y); color_factor = 1.0 / color_factor; gl_FragColor = vec4 (1, color_factor* color_factor, 0, color_factor * .8); }