In need of Fractional Brownian Noise (FBM) vs Perlin Noise clarification

user2211776 picture user2211776 · Jun 8, 2013 · Viewed 12.8k times · Source

I'm researching the various types of noise for terrain generation and I'm a little confused regarding when noise becomes perlin noise and when perlin noise becomes fbm. I'm hoping somebody could clarify anywhere that I'm going wrong. I currently assume the following

Noise: Contains a both amplitude and frequency which dictates the final value in conjunction with some form of interpolation such as linear, cosine or cubic.

Perlin Noise: A sum of octave noise functions(each successive function contains twice the frequency). From what I've read so far the amplitude always seems to be presented as a consistent reduction. For example, Noise1 contains A of 1, Noise2 contains A of 0.5, Noise3 contains A of 0.25 meaning that here amplitude halves each time. Must this it always be consistent like this?

FBM: The sum of multiple perlin Noise functions where each Perlin Noise function MUST contain only octaves with decreasing amplitudes.

Answer

Mario Guerra picture Mario Guerra · Jun 8, 2013

Perlin Noise is actually a method to calculate what you call Noise. It is a form of coherent noise computed as the interpolated normalized gradients of a pseudo-random underlying function (or pseudo-randomly generated gradients). The frequency controls the "sampling" distance of the gradients, so the higher the frequency, the smaller the sampling distance, and more gradients per unit of space. Amplitude controls the max and min values of the noise function.

Hugo Elias' page on Perlin Noise has a good description of the concept, the algorithm, etc. Perlin Noise FAQ explains the algorithm in a very intuitive manner.

Noise is a general term. Perlin Noise is only a type of coherent noise. But there is many different types with different characteristics.

Fractal Brownian Motion is, in fact, what you call Perlin Noise. It is a combination of multiple steps of Perlin Noise (or another similar noise function), each with a different frequency and amplitude. In the context of procedural generation, the variation in frequency from a step to the next is called lacunarity. The variation in amplitude from a step to the next is called gain.

Look at this. This project on terrain generation gives a very good description of what fBM is and how it is computed.

I hope this helps!