If you sample height values as pure random noise, you get a bumpy, unusable result. But if you place a random-direction gradient vector at each grid intersection and, at each point, take the dot products with the vectors pointing toward the surrounding intersections and combine them, you get smooth, natural-looking terrain.
Perlin noise doesn’t simply “sum” the corner dot-product values; it uses a fade function to perform smoothstep interpolation.

Seonglae Cho

