Perlin noise is a

procedural texturing technique, widely used in movies to produce

fire,

clouds, and other possible effects, in lieu of their physical counterparts.

It is produced by layering

noises of different

frequencies,

amplitudes and

curves on top of each other. This is able to create a

seemingly random yet smooth effect, usable for mountainous, rocky

heightmaps or smooth plains. The technique is usable for any positive amount of dimensions wanted. This allows three dimensional heightmaps, which vary over time, and three or

four dimensional fog maps. (The last being time, again)

Ken Perlin, who this method was named after, won an

Oscar for this technique, and developed it after working on

TRON in 1983.

A method of implementation for one dimensional noise is:

First, an array of random values is necessary. Assuming the value of x is a floating point, we must get the two neighbouring values in the random array: array[floor(x)] and array[floor(x + 1)]. Then, we interpolate those two values by the floating point part of x -- (x - floor(x)).

We can extend this method to two dimensions, also, and this requires interpolating between four neighbouring values. Three dimensions requires eight neighbours, and so on. 2

^{n}.