
OpenSimplex noise is an n-dimensional (up to 4D)
gradient noise function that was developed in order to overcome the patent-related issues surrounding
simplex noise
Simplex noise is the result of an ''n''-dimensional noise function comparable to Perlin noise ("classic" noise) but with fewer directional artifacts and, in higher dimensions, a lower computational overhead. Ken Perlin designed the algorithm in ...
, while likewise avoiding the visually-significant directional artifacts characteristic of
Perlin noise
Perlin noise is a type of gradient noise developed by Ken Perlin.
History
Ken Perlin developed Perlin noise in 1983 as a result of his frustration with the "machine-like" look of computer-generated imagery (CGI) at the time. He formally descr ...
.
The algorithm shares numerous similarities with simplex noise, but has two primary differences:
* Whereas simplex noise starts with a
hypercubic honeycomb
In geometry, a hypercubic honeycomb is a family of regular honeycombs (tessellations) in -dimensional spaces with the Schläfli symbols and containing the symmetry of Coxeter group (or ) for .
The tessellation is constructed from 4 -hypercube ...
and squashes it down the main diagonal in order to form its grid structure,
[Ken Perlin, Noise hardware. In Real-Time Shading SIGGRAPH Course Notes (2001), Olano M., (Ed.)]
(pdf)
/ref> OpenSimplex noise instead swaps the skew and inverse-skew factors and uses a stretched hypercubic honeycomb. The stretched hypercubic honeycomb becomes a simplectic honeycomb after subdivision.[Spirit of Iron: Simplectic Noise](_blank)
Michael Powell's blog This means that 2D Simplex and 2D OpenSimplex both use different orientations of the triangular tiling
In geometry, the triangular tiling or triangular tessellation is one of the three regular tilings of the Euclidean plane, and is the only such tiling where the constituent shapes are not parallelogons. Because the internal angle of the equilater ...
, but whereas 3D Simplex uses the tetragonal disphenoid honeycomb
The tetragonal disphenoid tetrahedral honeycomb is a space-filling tessellation (or honeycomb) in Euclidean 3-space made up of identical tetragonal disphenoidal cells. Cells are face-transitive with 4 identical isosceles triangle faces. John Horton ...
, 3D OpenSimplex uses the tetrahedral-octahedral honeycomb
The tetrahedral-octahedral honeycomb, alternated cubic honeycomb is a quasiregular space-filling tessellation (or honeycomb) in Euclidean 3-space. It is composed of alternating regular octahedra and tetrahedra in a ratio of 1:2.
Other names incl ...
.
* OpenSimplex noise uses a larger kernel size than simplex noise. The result is a smoother appearance at the cost of performance, as additional vertices need to be determined and factored into each evaluation.
OpenSimplex has a variant called "SuperSimplex" (or OpenSimplex2S), which is visually smoother. "OpenSimplex2F" is identical to the original SuperSimplex.
See also
* Value noise
* Worley noise
References
External links
Blog post introducing OpenSimplex noise
*
Author's current implementation
(OpenSimplex2)
Android library
C implementation
GPU implementation in OpenCL
Heavily-optimized implementation in C#
Noise library for the Rust programming language
providing OpenSimplex noise – does not hard code gradient initial values
Python implementation
Noise (graphics)
{{graphics-software-stub