try my own Perlin Noise, so slow:(