algorithmrandomnoiseperlin-noiseprng

What's the randomness quality of the Perlin/Simplex Noise algorithms?


What's the randomness quality of the Perlin Noise algorithm and Simplex Noise algorithm?

Which algorithm of the two has better randomness?

Compared with standard pseudo-random generators, does it make sense to use Perlin/Simplex as random number generator?

Update: I know what the Perlin/Simplex Noise is used for. I'm only curious of randomness properties.


Solution

  • As stated in "The Statistics of Random Numbers", AI Game Wisdom 2, asking which produces 'better' randomness depends what you're using it for. Generally, the quality of PRNGs are compared via test batteries. At the time of print, the author indicates that the best known & most widely used test batteries for testing the randomness of PRNGs are ENT & Diehard. Also, see related questions of how to test random numbers and why statistical randomness tests seem ad-hoc.

    Beyond the standard issues of testing typical PRNGs, testing Perlin Noise or Simplex Noise as PRNGs is more complicated because:

    1. Both internally require a PRNG, thus the randomness of their output is influenced by the underlying PRNG.
    2. Most PRNGs have lack tunable parameters. In contrast, Perlin noise is summation of one or more coherent-noise functions (octaves) with ever-increasing frequencies and ever-decreasing amplitudes. Since the final image depends on the number and nature of the octaves used, the quality of the randomness will vary accordingly. libnoise: Modifying the Parameters of the Noise Module
    3. An argument similar to #2 holds for varying the number of dimensions used in Simplex noise as "a 3D section of 4D simplex noise is different from 3D simplex noise." Stefan Gustavson's Simplex noise demystified.