4 ms·
The problem is that simplex noise has a different look than perlin noise so it's not a drop in replacement. The article mentioned the higher frequency, but IMO
by ginko 5y ago
The problem is that simplex noise has a different look than perlin noise so it's not a drop in replacement. The article mentioned the higher frequency, but IMO it also has a bit more noticeable "spikes".
One thing the article only brushed, but is the main advantage of simplex noise is its performance. Perlin noise scales O(2^n) with the number of dimensions, but simplex noise scales O(n). That's because Perlin noise interpolates the nearest 2^n gradient values in its hypercube neighborhood, but simplex noise only has to check n+1 values in its simplex.
For 3D and especially 4D noise that's a huge performance advantage.
edit: Turns out simplex noise is O(n^2), still faster than Perlin noise.
- MillenialMan 5y ago> simplex noise scales O(n) Typo? Simplex noise scales at O(n^2), not O(n).
- ginko 5y agoHm, not a typo, I thought it was O(n) since that's how simplices scale with dimensions. Where does the extra *n come from? I guess identifying the right simplex isn't free.. Right, the gradients will still have more dimensions to evaluate.
- MillenialMan 5y agoO(n) measures the number of vector operations, but each one operates over a vector, so there are n^2 arithmetic operations. This is also true for perlin noise - there are 2^n vector operations, but the arithmetic complexity is O(n.2^n). Obviously this ignores the parallelizability of the algorithms, which is probably the more important factor at this point, and the ability to be hardware accelerated. (Edit: the complexity is outlined on page 20 of the original simplex noise paper[1]. Just ctrl+f "complexity") [1] https://www.csee.umbc.edu/~olano/s2002c36/ch02.pdf https://www.csee.umbc.edu/~olano/s2002c36/ch02.pdf