Noise Functions


Heightmaps Show

Noise Functions

Random Values

We can generate random values using a pseudorandom number generator:
import random

randX = [random.randint(0, 100) for x in range(0, 50)]


Many areas of procedural generation require random values, but the randomness needs to look more organic:
This is the job of a noise function. It produces random data, but the data has an underlying organic nature.

Higher Dimensions

  • The above examples were in one dimension
    • X is an array of numbers, for each number in X there is a corresponding value.
  • However it is often useful to generate noise for 2 or more dimensions:
  • In the above example a random value is assigned to each (x, y) coordinate pair:
    • 2D noise functions are often used to generate terrains in which the height values are the result of the noise function applied to each point.
  • Noise functions can be extended into 3 or more dimensions:
    • For example, a 3D noise function could be used for modelling gas. The random value at each 3D point could describe its density.
    • 3D noise functions can also be used to animate 2D noise functions:
      • A 3D array of data is produced and then cut into a series of 2D slices.
      • You can then convert each slice into an individual frame of an animation.
      • This can then be used for when you need 2D noise that changes over time, such as when animating the formation of clouds.