Practical knowledge on combined noises - Overdrivr/ZNoise GitHub Wiki

NOTE : OUTDATED, NEEDS A REFRESH :p Unlike simple noises, using FBM (fractionnal brownian motion) noise can be a little hard at first. However, complex noises aren't called that way because they are hard to use, but because they are a combination of simple noises.

Remember the prototype of the 1D FBM function :

Get1DFBMNoiseValue(float x, double H, double lacunarity, double octaves, double resolution);

At that point, you should know how to use x and resolution parameters. If not, consult [this tutorial].

There are three new parameters : H, lacunarity and octaves. To understand what's coming next, keep in mind that a complex noise is formed by a weighted mixing of layers of simple noise.

Octaves

"octaves" is the total number of theses layers. Keep in mind that the noise function's speed is directly proportional to the number of octaves. You may have noticed that "octaves" is a decimal number, not an integer. This is hard to vizualise with the layer model, but this is taken into account inside the code. The visual difference between an integer and a decimal number of octaves is really small.

advised interval : (2 to 8) at least superior to 1

Lacunarity

The lacunarity represents the frequency interval between two successive layers. In the code, it's the resolution of the octave n+1 divided by the resolution of the octave n.

advised interval : (2 to 20) at least superior to 1

H (Hurst parameter)

This parameter controls how the layers are added together. A small value will make high frequencies more visible, and a big value will filter high frequencies. Choosing the optimal value for this parameter can be pretty hard. If you choose a value too big, you will totaly filter high frequencies, and computing the values for theses small frequencies takes time, in that case, wasted time. So choose carefully H with the number of octaves and the lacunarity.

advised interval : (0 to 2)

[matrix here showing H = f(octaves,lacunarity) to avoid previous effect]

[matrix of terrain profile images at different lacunarity and H]

Note : There is no restriction in the code on theses parameters. You can try whatever values you want, but I recommend to limit yourself to the advised interval for the H parameter, since no good comes out from outside this interval.