# Musgrave Texture in Cycles by Example

Kenneth F. Musgrave came up with an algorithm to create procedural patterns suitable for creating procedural terrain. His results actually exceed this purpose and can produce some very interesting patterns. His methods are implemented in Cycles but they are largely overlooked.

For us this was due to the standard settings looking very boring, and fiddling with the values did not seem to change much. There are actually two reasons why testing the potential of this texture can be quite frustrating. A lot of value combinations produce either black, white or boring results. And in addition to that some of the values are completely ignored by the node, depending on the mode, even though they are not grayed out.

Fig. 1) Renderings of the Musgrave texture set to fBM.
a) default values, detail: 2.2, dimension: 2, lacunarity 1.
b) detail: 16, dimension: 2, lacunarity 1.
c) detail: 16, dimension: 0.5, lacunarity 10.
d) detail: 5, dimension: 0, lacunarity 0.7.
e) detail: 5, dimension: 10, lacunarity 0.7.

fBM is the default setting and it produces white blobs in a black ocean. Toying around with the values will show you that it can also produce much smaller dots or larger white areas with hard edges, but that's about it. This mode completely ignores the fields for offset and gain.

If you click on fBM, a drop down menu will pop up (or drop down, as you prefer) and you can choose from other algorithms. Let's have a look at multifractal first. In my opinion it is a lot more more interesting than fBM, although it also ignores gain. With some rather extreme combinations of values it can still produce some very decent textures.

Fig. 2) Renderings of the Musgrave texture set to multifractal.
a) detail: 11, dimension: 1.5, lacunarity: 0.9.
b detail: 11, dimension: 2.1, lacunarity: 0.9.
c) detail: 13, dimension: 2.2, lacunarity: 0.9.
d) detail: 10, dimension: 17.5, lacunarity: 0.9.
e) detail: 13.4, dimension: 8.5, lacunarity: 0.86.

Even though hybrid multifractal sounds more interesting than the plain version, it is not necessarily more versatile. But with the right combination you can still produce some unexpected patterns.

Fig. 3) Musgrave texture set to hybrid multifractal.
a) default values, detail: 2.2, dimension: 2, lacunarity: 1.
b) offset increased to 0.6. Note how more white parts occur as the sea-level falls.
c) detail: 0.9, dimension: 0, lacunarity: 20. The noise only works if the detail value behind the decimal is high (in this case 9 - Note: 0.19 is not greater than 0.3).
d) detail: 15.0, dimension: 0, lacunarity: 20. If the detail value behind the decimal is too low (0 in this case), the lacunarity has no effect.
e) detail: 7, dimension: 2.4, lacunarity: 0.56.

Another option from the drop down is hetero terrain. Even though it does not ignore offset, it is still hard to really make it look interesting. It is – you guessed it – intended to create procedural heterogeneous terrain. It's the only version that offers noise confined to the inside of the blobs, which is very handy for some jagged islands. The offset shifts the sea level.

Fig. 4) Musgrave texture set to hetero terrain, upper row: texture used for the color of an emission shader, lower row: texture with the same settings used as the displace factor of a diffuse material.
a) default values, detail: 2.2, dimension: 2, lacunarity: 1, offset: 0.
b) offset raised to 0.2. Note how more white parts occur as the sea-level falls.
c) detail: 4, dimension: 0, lacunarity: 2.2, offset: 0. Note how the noise of the lacunarity stays inside the islands.
d) detail: 5, dimension: 2, lacunarity: 0.7, offset: 0.
e) detail: 5, dimension: 10, lacunarity: 0.8, offset: 0. Since this setup created pixels between -600 and 11,000 intensity, the result for the displacement was clipped using a color ramp, instead of the math node, with the default settings.

I saved the best for last, so here it is: the ridged multifractal. Right out of the box it already looks different from the others and it does not ignore any of the values. Still randomly fiddling around with the values can be a bit frustrating, because, for example, there is no difference between a detail value of 4.1 and 5. Only once you step past the next whole number the detail actually makes a difference. Also offset values lower than -0.5 and greater than 0.5 usually result in completely black or white textures.

Fig. 5) Musgrave texture set to ridged multifractal.
a) default values, detail: 2.2, dimension: 2, lacunarity: 1, offset: 0, gain: 1.
b) offset increased to 0.6. Note how it does not raise the sea-level, but offsets the phase (not mathematically), so it somewhat inverts the texture.
c) detail 10, dimension 0.2, lacunarity: 1.7, offset: 0, gain: 25.
d) detail: 9, dimension: 0, lacunarity: 2, offset: 0.7, gain: 3.
e) detail 10, dimension 1.5, lacunarity: 1.05, offset -0.05, gain 14.

In Fig. c) and e) some "substructures" become visible. You can actually zoom into those structures without any quality loss using the scale value of the texture. Decreasing it will enlarge your texure.

Unless we missed something on the web, the Musgrave texture is the most under-appreciated of the procedurals, but getting interesting results off it is rather tedious. That is why we wrote a script that rendered a couple of thousand images with random settings for this texture, you can download the most interesting ones here.

For a much more detailed explanation of the different values of this texture and so much more, consider The Cycles Encyclopedia.

Related Items: