Simplex Noise

Simplex Noise (English ) is a method for constructing an n-dimensional noise function, comparable to Perlin Noise, but with a lower computational cost, especially in larger dimensions.

Ken Perlin developed the algorithm in 2001 to circumvent the limits of classical noise function, especially in higher dimensions.

The advantages of the simplex noise over Perlin Noise:

  • Simplex noise has a lower computational complexity and requires less multiplications.
  • Simplex Noise scaled to higher dimensions (4D, 5D ). With less computational effort is the complexity of dimensions, instead of the classical noise.
  • Simplex Noise has no noticeable artifacts direction ( isotropic ).
  • Simplex noise has well-defined and continuous gradient, which can be calculated conveniently.
  • Simplex Noise is easy to implement in hardware.

While classical noise between the values ​​from the surrounding HyperGrid endpoints are interpolated ( ie, north, south, east and west in 2D), Simplex Noise divides the space into simplices, ie n-dimensional triangles, will interpolate between them. This reduces the number of data points. While a hypercube has n dimensions corners having dimensions in a simplex only corners in dimensions. The triangles are equilateral in 2D, but in higher dimensions the simplices are only approximate regularly.

Simplex Noise is useful for computer graphics applications in which noise is usually calculated over 2, 3, 4 or maybe 5 dimensions. For higher dimensions, balls are not measured sufficiently dense with simplex vertices. This reduces the support of the function to zero large parts of the room.

Swell

  • Short technical articles with source code by Stefan Gustavson (PDF)
  • Animated " rubber sheet " as a demo for Perlin simplex noise
  • Another implementation of the simplex noise in C ( SimplexNoise1234 )
731405
de