varying vec4 varColor;
varying float pointSize;

void main() {
    float dist = ATTRIB_position.y / 4.0;
    float angle = ATTRIB_position.x;
    
    float x = dist * sin(angle) * 0.8;
    float y = dist * cos(angle) * 0.8;
    float p = dist * 7.5;
    float s = cos(p);
    float t = sin(p);
    vec4 pos;
    pos.x = t*x + s*y;
    pos.y = s*x - t*y;
    pos.z = ATTRIB_position.z;
    pos.w = 1.0;
    pos.y = pos.y * 0.5;
    gl_Position = UNI_MVP * pos;
    varColor = vec4(1.0, 1.0, 1.0, 1.0);
    pointSize = 170.0-(pos.y*pos.y*1.2*1.2 + pos.x*pos.x)*400.0;
    if(pointSize<=30.0){
        pointSize = 30.0;
    }
    gl_PointSize = pointSize;// - snoise(pos.xy)*5.0;
}