N-dimensional gradient noise function
OpenSimplex noise