#version 120

uniform float zoom;
uniform float point_size;
uniform float near_plane_height;

void main()
{
    gl_Position = ftransform();
    gl_PointSize = (gl_Position.w == 1.0) ? zoom * near_plane_height * point_size : near_plane_height * point_size / gl_Position.w;
}