A guide to different noises for generating textures and landscapes

The noise can be modified for different uses simply by calculating the absolute value or the sine of the noise.


Different types of noise

Value Noise

The simplest noise comes from pseudo random generators – this gives incoherent white noise. 2 adjacent values will not be related to each other. This type of randomness does not give realistic textures or landscapes.

value.noise places the value generated by the pseudo random generator on an imaginary grid, then it interpolates between the values and smooth them out to give a much better appearance. Perlin noise and fractal noise are much better at generating good looking textures and landscapes than value noises.

Tip: Use Random.Seed to vary the results of Random.value further – the same series of numbers will be returned for the same seed. this gives a lot of power for procedural generation. can sow the seed and other info about the mesh and rebuild that same mesh at runtime.


Perlin noise

A coherent type of noise developed by Ken Perlin in 1980s to improve value noise.

Rather than random values on a grid, Perlin noise places vector3s(gradients) rather than single values on a grid, which are then interpolated and smoothed. this gives a much more natural appearance. use unity’s own implementation to build Perlin landscapes.

Like the value noise, Perlin noise is deterministic – the same input values will always get the same results, which means it’s possible to store the inputs to generate the same procedural mesh at runtime.



Fractal Noise(Summed Perlin Noise / Fractional Brownian motion / FBM)

A vast improvement which works by summing up the different scales of Perlin noise to generate greyscale noise values.


Amplitude and frequency

amplitude of a function = max displacement from 0 height

frequency = number of cycles per unit length

The higher the frequency the more squashed the graph looks.


When summing up different scales of Perlin noise, each instance is called an octave. The amplitude will control the contribution of each octave, the frequency will control the level of detail of each octave.

For fractal noise, on each octave the amplitude will half and the frequency will double. This leads to a function which looks like a mountain range with the highest amplitude and the lowest frequency being the general mountain shape. the lower amplitude or higher frequency octaves being smaller details down to individual rocks.


Further Reading: http://catlikecoding.com/unity/tutorials/noise-derivatives/