           }
       }
 
+
+      float a = pow(2.0*(gl_PointCoord.x - 0.5), 2.0);
+  	  float b = pow(2.0*(gl_PointCoord.y - 0.5), 2.0);
+      float c = 1.0 - (a + b);
+
+   	  if(c < 0.0){
+   	      discard;
+   	  }      
+#if defined have_frag_depth
+      gl_FragDepthEXT = gl_FragCoord.z + 0.002*(1.0-pow(c, 1.0)) * gl_FragCoord.w;
+#endif
       gl_FragColor = vec4(mix(out_color, out_intensity, intensityBlend), 1.0);
   }")
 

                  height_color * height_f +
                  inv_height_color * iheight_f;

      // blend and return
      gl_PointSize = pointSize;
  }")




(def frag-shader
  "
#if defined have_frag_depth
#extension GL_EXT_frag_depth : enable
#endif

  precision mediump float;

  uniform vec4 planes[6];
