Simplex noise
From Wikipedia, the free encyclopedia
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 and up) with much less computational cost, the complexity is O(n) for n dimensions instead of the O(2n) of classic Noise.
- Simplex noise has no noticeable directional artifacts (is not anisotropic).
- Simplex noise has a well-defined and continuous gradient everywhere that can be computed quite cheaply.
- Simplex noise is easy to implement in hardware.
Whereas classical noise interpolates between the values from the surrounding hypergrid end points (ie: North South East West in 2D), Simplex noise divides the space into simplexes (ie: n dimensional equilateral triangles) to interpolate between. This reduces the number of data points. While a hypercube in N dimensions has 2N corners, a simplex in N dimensions has only N + 1 corners.
[edit] See also
[edit] References
- ^ Ken Perlin, Noise hardware. In Real-Time Shading SIGGRAPH Course Notes (2001), Olano M., (Ed.). (pdf)