precision highp float; attribute vec3 stars; uniform float time; uniform float world_x; uniform float world_y; uniform float world_x_period; uniform float world_y_period; uniform vec4 lamp1; uniform vec4 lamp2; uniform vec4 lamp3; uniform vec4 lamp4; uniform vec4 lamp5; uniform vec4 lamp6; uniform vec4 lamp7; uniform vec4 lamp8; uniform mat4 MV; uniform mat4 P; void main() { float world_x_off = mod(world_x, world_x_period); float world_y_off = mod(world_y, world_y_period); vec4 pos = P * MV * vec4(stars.x - world_x_off, stars.y - world_y_off, -0.1, 1.0); gl_Position = pos; float intensity = sin(stars.z + time) * cos(time) + 1.; /* if(distance(pos.xyz, lamp1.xyz) < 80.) intensity = 0.; */ gl_PointSize = pow(intensity, 2.) * stars.z * 0.3; //gl_PointSize = distance(pos.xyz, lamp1.xyz); }