Discovered a new implementation of procedural noise today – Simplex Noise
It seems to be a slightly better version of Perlin Noise. Details and pretty pictures follow.
Key advantages of Simplex noise:
- Slightly faster – simplex noise takes about 90ms to generate my samples images vs. 115ms for Perlin noise
- Less regular – features are distributed hexagonally rather than in squares, which should generate more “natural” looking textures
- No noticeable directional artifacts – apparently it’s possible for various transformations of Perlin noise to have some artifacts, which simplex noise generally avoids.
For comparison, here is Perlin Noise:
(show scale 0.2 perlin-noise)
And here is Simplex Noise:
(show (scale 0.3 simplex-noise))
Visually they look pretty similar (note that simplex noise has slightly more densely packed features than perlin noise, so I’ve had to adjust the scale slightly to make them comparable). Simplex noise seems to have a bit more contrast in places, which I think is a good thing as it means it’s using more of the [0..1] value range by default.
Overall I think simplex noise has it’s advantages and looks a bit better, so I’m planning to switch to using it as the default procedural noise implementation for clisk 0.4.0.