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.