Beginning of perlin noise func