28
$\begingroup$

Perlin noise is one of the most popular procedural noise functions. Perlin later developed Simplex noise which improves on some of the shortcomings of Perlin noise, notably its inefficiency in higher dimensions and directional artefacts (Wikipedia lists five advantages of Simplex noise). Still, Perlin noise appears to be widely used. I can imagine that the main reason is that Simplex noise is conceptually much more difficult to understand, but by now there should be enough implementations so that you don't have to re-implement it yourself.

Does Perlin noise have any advantages over Simplex noise? When picking a noise function, would I ever choose Perlin instead of Simplex?

$\endgroup$
  • 2
    $\begingroup$ I'm voting to close this question as off-topic because it doesn't pertain to computer graphics programming specifically. $\endgroup$ – Qix Aug 4 '15 at 19:43
  • $\begingroup$ VTC for more visibility; should be discussed. (Although I would love to know the answer either way). $\endgroup$ – Qix Aug 4 '15 at 19:44
  • 3
    $\begingroup$ @Qix Discussion on Meta. $\endgroup$ – Martin Ender Aug 4 '15 at 19:46
26
$\begingroup$

To directly answer the question: Simplex noise is patented, whereas Perlin noise is not. Other than that, Simplex noise has many advantages that are already mentioned in your question, and apart from the slightly increased implementation difficulty, it is the better algorithm of the two.

I believe the reason why many people still pick Perlin noise is simply because it's more widely known. It's also worth noting that Perlin noise is very frequently confused with a combination of value noise and Fractal Brownian Motion (FBM).

Perlin noise, Simplex noise and value noise are all methods for synthesizing coherent noise. On the other hand, FBM (sometimes called "FBM noise"), is what is used when adding multiple layers of noise on top of each other at different scales to obtain more complex functions. The combination of FBM and value noise is simple to implement and can be very useful for terrain synthesis, procedural clouds and friends, and it is quite popular. However, it tends to be mistakenly labelled Perlin noise, misleadingly adding to its popularity.

$\endgroup$
  • 2
    $\begingroup$ I believe Simplex noise is only patented for 3D and above. $\endgroup$ – trichoplax Aug 22 '15 at 15:49
  • 1
    $\begingroup$ @trichoplax IANAPL but, as all the claims in the link provided by Benedikt , either explicitly mention either 3 dimensions (i,j,k or x y z) or a hypercube, it seems you are correct. $\endgroup$ – Simon F Sep 10 '15 at 8:40
  • $\begingroup$ @SimonF I wasn't as diligent as you - I was basing my opinion on this statement on Wikipedia. $\endgroup$ – trichoplax Sep 10 '15 at 8:44
  • $\begingroup$ The patent is narrowly defined and includes the bit-twiddling permutation method. SEE claim 1: google.com/patents/US6867776 $\endgroup$ – MB Reynolds Nov 3 '16 at 9:07

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.