somwhat optimised perlin noise
merged with master and perlin fast
merged with master again