Advanced Fractional Brownian Motion Noise
fbm(int basis_type, vec3 x, real H, real lacunarity, real num_octaves) real

This fbm function is a more general fbm that takes more parameters.

basis_type selects from a number of basis noise functions:
0: Perlin basis
1: Ridged basis
2: Voronoi basis

x is a 3-vector at which the noise is evaluated.

H controls the fractal dimension: a larger value causes faster attenuation of higher frequencies.
A good default value is 1.

Lacunarity determines the gap in frequencies between different 'octaves' of noise.
A larger lacunarity means each subsequence octave will have higher frequency.
A good default value is 2.

Octaves determines the number of octaves of noise that are added together. If the value has a fractional component, the last octave is attenuated by the fractional part then added.

Basis Types

Perlin basis, 1 octave

Ridged basis, 1 octave

Voronoi basis, 1 octave

Effect of number of octaves

Perlin basis, 1 octave

Perlin basis, 2 octaves

Perlin basis, 3 octaves

Perlin basis, 10 octaves

Ridged basis, 1 octave

Ridged basis, 10 octaves

Voronoi basis, 1 octave

Voronoi basis, 10 octaves

Effect of fractal dimension (H)

Ridged basis, H=1

Ridged basis, H=1.5

Ridged basis, H=2

Effect of Lacunarity

Ridged basis, lacunarity = 3

Ridged basis, lacunarity = 4

Ridged basis, lacunarity = 6

You can download the example Indigo scene used in the images above here.