Jump to content

Simplex noise

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by GeoManSir (talk | contribs) at 08:26, 2 April 2015 (Related it to the tetragonal disphenoid honeycomb.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Simplex noise is a method for constructing an n-dimensional noise function comparable to Perlin noise ("classic" noise) but with a lower computational overhead, especially in larger dimensions. Ken Perlin designed the algorithm in 2001[1] to address the limitations of his classic noise function, especially in higher dimensions.

The advantages of simplex noise over Perlin noise:

  • Simplex noise has a lower computational complexity and requires fewer multiplications.
  • Simplex noise scales to higher dimensions (4D, 5D) with much less computational cost, the complexity is for dimensions instead of the of classic noise.[2]
  • Simplex noise has no noticeable directional artifacts (is visually isotropic), though noise generated for different dimensions are visually distinct (e.g. 2D noise has a different look than slices of 3D noise, and it looks increasingly worse for higher dimensions).
  • Simplex noise has a well-defined and continuous gradient (almost) everywhere that can be computed quite cheaply.
  • Simplex noise is easy to implement in hardware.

Whereas classical noise interpolates between the gradients at the surrounding hypergrid end points (i.e., northeast, northwest, southeast and southwest in 2D), simplex noise divides the space into simplices (i.e., -dimensional triangles) to interpolate between. This reduces the number of data points. While a hypercube in dimensions has corners, a simplex in dimensions has only corners. The triangles are equilateral in 2D, but in higher dimensions the simplices are only approximately regular. For example, the tiling in the 3D case of the function is an orientation of the tetragonal disphenoid honeycomb.

Simplex noise is useful for computer graphics applications, where noise is usually computed over 2, 3, 4 or possibly 5 dimensions. For higher dimensions, n-spheres around n-simplex corners are not densely enough packed, reducing the support of the function and making it zero in large portions of space.

Uses of implementations in 3D and higher for textured image synthesis are covered by U.S. patent 6,867,776, if the algorithm is implemented using the specific techniques described in any of the patent claims.

References

  1. ^ Ken Perlin, Noise hardware. In Real-Time Shading SIGGRAPH Course Notes (2001), Olano M., (Ed.). (pdf)
  2. ^ Ken Perlin, Making noise. Based on a talk presented at GDCHardcore (Dec 9, 1999). (url)