libnoise logo

A portable, open-source, coherent noise-generating library for C++


What is coherent noise?

Coherent noise is a type of smooth pseudorandom noise.

Coherent noise is generated by a coherent-noise function, which has three important properties:

  1. Passing in the same input value will always return the same output value.
  2. A small change in the input value will produce a small change in the output value.
  3. A large change in the input value will produce a random change in the output value.

An n-dimensional coherent-noise function requires an n-dimensional input value. Its output value is always a scalar.

In libnoise, all coherent-noise functions are three-dimensional. Three-dimensional coherent noise is often called solid noise because it can be used to create solid three-dimensional textures.

The following graph shows the output of a one-dimensional coherent-noise function n(x) with a frequency of 2:

Coherent-noise function graph

Compare it to the following graph that shows the output of a non-coherent-noise function n(x):

Non-coherent-noise function graph

See also: Generating coherent noise.