         pointColor = 0.8*jet_colormap(tonemap(0.16*heightAboveGround, exposure, 3.8*contrast));
     }
     if (selectedTreeLevel != treeLevel)
-        markerShape = -1;
+        pointScreenSize = 0;
     // Ensure zero size points are discarded.  The actual minimum point size is
     // hardware and driver dependent, so set the markerShape to discarded for
     // good measure.


void main()
{
    if (markerShape < 0) // markerShape == -1: discarded.
        discard;
    // (markerShape == 0: Square shape)

    float r = length(position.xy - cursorPos.xy);
    float trimFalloffLen = min(5, trimRadius/2);
    float trimScale = min(1, (trimRadius - r)/trimFalloffLen);
    scaledCoverage = 17*coverage;
    modifiedPointRadius = pointRadius * trimScale * pointSizeLodMultiplier * (1<<8)/(1<<treeLevel);
    pointScreenSize = clamp(2*pointPixelScale*modifiedPointRadius / p.w, minPointSize, maxPointSize);
    markerShape = 0;
    // Compute vertex color
