I have been reading about the mathematics behind Perlin noise, a gradient noise function often used in computer graphics, from Ken Perlin's presentation and Matt Zucker's FAQ.
I understand that each grid point, $X$, has a pseudo-random gradient associated with it, $g(X)$ - just a vector of unit length that appears random. When finding the noise value at a point $P$, for each grid point surrounding it, $Q$, the dot product $g(Q) \cdot (P-Q)$ is found. Then these dot products are interpolated to find the noise value at point $P$.
The thing I don't understand, however, is why we use gradients. There is another type of noise function called value noise in which each grid point has a scalar value rather than a gradient. I've seen articles that say gradient noise produces higher quality noise but they don't explain why. I can't seem to visualise how this dot product makes the noise any better quality. What does "quality" even mean here? Why did Ken Perlin decide to use gradients?
2^dsample points, would need
3^dsample points in
ddimensions. When 4d noise is used, this gets expensive: 81 sample points to compute each noise query (though each of the samples is cheaper). $\endgroup$