     float r = length(position.xy - cursorPos.xy);
     float trimFalloffLen = min(5, trimRadius/2);
     float trimScale = min(1, (trimRadius - r)/trimFalloffLen);
-    modifiedPointRadius = sqrt(coverage) * pointRadius * trimScale * pointSizeLodMultiplier * (1<<8)/(1<<treeLevel);
+    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


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

flat out float pointScreenSize;
flat out vec3 pointColor;
flat out int markerShape;
flat out float scaledCoverage;

float tonemap(float x, float exposure, float contrast)
{
