While investigating the inner workings of perlin noise, I wondered why one would use perlin noise instead of simple value noise. As far as I understand it right, the following applies:

Perlin noise is a lattice based noise function, which assigns a n-dimensional gradient (random for the original implementation, fixed for the improved one) for every point in the underlying noise space. Now you can query a value for every point in space by calculating the dot product between the distance vector and the gradient vector. After that you average all values calculated and get the queried value.

But isn't value noise kind of the same without using gradient vectors but random values? Since I also interpolate between values in value noise I cannot see any benefits by using an additional calculation step (the dot product) in perlin noise.

So why would I use perlin noise instead of value noise? Why is perlin noise so popular?


The benefit of perlin noise is the overall distribution of frequencies. Since value noise uses simple values that are interpolated, there is a higher chance, that a row of several values only differs a little. The consequence is, that some regions of your picture may contain little changes and some regions a lot of changes.

By using gradients you are reducing this effect because the interpolation is not done by value but instead calculated between tangents. Now it's more difficult to have a flat curve (both tangents must be collinear).

perlin noise vs value noise

Source: As noted by Martin Ender the question was already posted on a different StackExchange community: see this Math.SE post.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.