32
$\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$
0

1 Answer 1

29
$\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$
4
  • 2
    $\begingroup$ I believe Simplex noise is only patented for 3D and above. $\endgroup$ Commented Aug 22, 2015 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
    Commented Sep 10, 2015 at 8:40
  • $\begingroup$ @SimonF I wasn't as diligent as you - I was basing my opinion on this statement on Wikipedia. $\endgroup$ Commented Sep 10, 2015 at 8:44
  • $\begingroup$ The patent is narrowly defined and includes the bit-twiddling permutation method. SEE claim 1: google.com/patents/US6867776 $\endgroup$ Commented Nov 3, 2016 at 9:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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