     
     float centLen = length(center);
     float R = 0.0;
-    float xWidth = 16.0;
+    float xWidth = 4.0;
     float xWidth2 = xWidth / 2.0;
-    float zWidth = 20.0;
+    float zWidth = 16.0;
     
+    /*
+    mapHeights(floor(iGlobalTime));
     for (int i = 0; i < NumPnts; ++i)
     {
         float iFl = float(i);

        float locTime = time + iFl / NumPntsF;
        float locCTime = floor(locTime);
        float locFTime = locTime - locCTime;
        
        for (int j = 0; j < NumPnts; ++j)
        {
            float jFl = float(j);
            
            float xc = jFl / NumPntsF * xWidth - xWidth2 + sin(iGlobalTime) * xWidth / NumPntsF;
            float zc = (1.0 - iFl / NumPntsF) * zWidth;//(1.0 - locFTime) * 20.0;
            float yc = 2.5 - sin(xc * zc);//4.0 * iFl / NumPntsF * M_PI) * (sin(iGlobalTime) + 1.0) / 2.0;// + iFl / NumPntsF * M_2PI);

            vec4 dPos = vec4(xc, yc, zc, 1.0);
            vec4 persPos = pMat * dPos;
            persPos.xy = persPos.xy * centLen / persPos.w;
            float transVal = transit(0.0, zWidth, 0.3, 1.0, zWidth - zc);
            float intens = Intensity * transVal;
            R += pressence(persPos.xyz, Radius * transVal) * intens;
        }
    }
    fragColor = vec4(R, R, R, 1.);
}

    return (rad - clamp(dif.x * dif.x + dif.y * dif.y, 0.0, rad));
}

void mapHeights(float line)
{
    float H = 0.7;
    Heights[0] = 0;//snoise(vec2(line, 0.0));
    Heights[NumPnts] = 0;//snoise(vec2(line, NumPnts));
    for (int step = NumPnts; step > 1; step /= 2)
    {
        float hardness = 1 / pow(2.0, H / float(step) * NumPntsF);
        int halfStep = step / 2;
        for (int k = halfStep; k < NumPnts; k += step)
        {
            Heights[k] = (Heights[k - halfStep] + Heights[k + halfStep]) / 2.0
                + transit(snoise(vec2(line, k)), -1.0, 1.0, -hardness, hardness);
        }
    }
}

void main()
{
    fragCoord = gl_FragCoord;
