Musgrave

-·-- ·--·

Home
Soccer Ball
Beveled primitives
Skylights
Road Lines
Herringbones
Warp Turbulence
Worley
Cell FX
Musgrave
Extended Grid
Spherical Smear
Radial Smear
Planet Glow
Hair Direction

Materials Plugins

Musgrave


Click here to download it (for A:M v8.5, Windows).
Copy the trb into your A:M turbulence folder.

The musgrave Plugin is based on the the A:M native 3D Noise function just like all the A:M native turbulence combiners. Actually the A:M native combiners Fractal Sum, Perlin, Sine and fBM are all available inside the Musgrave combiner and several other classical ones have been added.

In addition, several parameters are also available to allow you to finely adjust the appearance of the output produced by the combiner.

Because of the several parameters added, you might call the combiner "Noise on steroid". And because of that, it is not your typical precanned plugin already setup to produce a specific type of pattern. It is rather a versatile and powerful tool that will satisfy a nerd but will probably annoy a non tecky inclined person.

The parameters are difficult to describe because they are all interdependent. So instead of trying to describe the parameters like recipes, I will describe the underlying effect each parameter have on the output. This should give you a glimpse at how those type of functions work.

Before describing the effect of each parameters, some fundamentals of how those Noise functions work might help understand what we are taking about here. So I invite you to read the 2 pages I have prepared about noise functions.

In the example renders I show below, the material scale is set to 300, the first attribute is white and the second attribute is black.

Octave

See the Octave, Lacunarity and Fractal Dimension description page.

In the Musgrave Plugin, you may raise the octave up to 20. But be warned though that for 256 grayscale (or RGB) displays, the limit you can visually distinguish is 8 Octaves unless you start playing with the other properties. More on this later.

Lacunarity

See the Octave, Lacunarity and Fractal Dimension description page.

Lacunarity controls the scale of each successive fractal overlay. A Lacunarity of 2 is what the A:M native noise functions use. 

Fractal Dimension

See the Octave, Lacunarity and Fractal Dimension description page.

Fractal Dimension controlls the sharpness of overlay details. Normally, the deeper we go into the detail overlays, the less contrast we have in the details. By increasing the fractal dimension, we increase the relative contrast of each successive overlay.

Type


Fractal Sum

Perlin

Sine

fBM

You will find the regular types like Fractal Sum, Perlin, Sine and fBM.

In addition to tose types, I have added a few more. 1 variations of the Perlin, Sine and fBM and 3 other classical ones. A:M Noise function names where given before the procedural texture field of research had cristalized a naming convention so they do not always concur with other names around (see my digression about Noise function naming).

Note that both Lacunarity and Dimension may be applied to all the noise functions including the regular ones like Fractal Sum, Perlin, Sine and fBM and Octave up to 20 too.

Fractal Perlin vs Perlin


Perlin & Fractal Perlin
Octave = 1

Perlin
Octave = 2

Fractal Perlin
Octave = 2

Fractal Perlin is a different way to combine the different detail overlays together relative to the folding of the result. Folding is a process that introduces sharp changes in the function output by folding the output in the middle of its value range which gives those running lines in the texture. The normal Perlin folds the details before overlaying them while the Fractal Perlin overlays first and then folds last.

Fractal Sine vs Sine


Sine & Fractal Sine
Octave = 1

Sine
Octave = 2

Fractal Sine
Octave = 2

The same implementation differences are applied to Fractal Sine vs Sine.

VL fBM vs fBM


fBM & VL fBM
Octave = 1

fBM
Octave = 2

VL fBM
Octave = 2

VL fBM stands for Variable Lacunarity fBM but in fact have nothing to do with varying the lacunarity at all. But I selected this name because the implementation of it follows the implementation in the TMPA book (see naming conventions). Apart from that, the differences in implementation between VL fBM vs fBM are the same as for Fractal Perlin vs Perlin.

Note that for both fBM and VL fBM, the "Perturb" property allow you to control the amount of perturbation applied to the Perlin Noise. 

fBM, Octave = 1
Perturb = 25

fBM, Octave = 1
Perturb = 50

fBM, Octave = 1
Perturb = 200

fBM, Octave = 1
Perturb = 400
A value of 0 means no perturbation and a value of 100 means apply the same perturbation as for the native A:M fBM. You may perturb to anything between 0 and 1000.

The 3 next Noise types are experiments made by Ken Musgrave. Hence the name I gave to the plugin. Those experiments where made in the context of trying to find noise functions that could be used in cloud and terrain generations.

Hetero Multifractal


Hetero MultiFractal
Octaves = 3
Offset = 0

Hetero MultiFractal
Octaves = 3
Offset = 50

Hetero MultiFractal
Octave = 3
Offset = 100
Hetero Multifractal, (conventionally called Hetero Terrain) controls the amount of details added by successive overlays according to an "Offset" value. The Offset may vary between 0 and 100. Details are greater away from the Offset and smaller near the Offset. And the Offset is relative to the noise output function. So given our setup where the first attribute is white and the second in black, an Offset of 0 will produce no details in the black areas and more details in the white areas and Offset value of 50 will produce no details in the 50% gray areas.

Hybrid MultiFractal


Hybrid MultiFractal
Octaves = 3
Fractal Dimension = 1

Hybrid MultiFractal
Octaves = 3
Fractal Dimension = 2.2

Hybrid MultiFractal
Octaves = 3
Fractal Dimension = 4.4
Hybrid Multifractal tries to control the amount of details according to the slope of the underlying overlays. It was conventionally used to generate terrains with nice smooth valleys and peaked mountains. At high Fractal Dimension values, it tends to produce embedded plateaus.

Ridged Multifractal


Ridged MultiFractal
Octaves = 3
Sharpness = 1

Ridged MultiFractal
Octaves = 3
Sharpness = 2

Ridged MultiFractal
Octaves = 3
Sharpness = 3

Ridged Multifractal is one of the best Fractal Noise to produce mountains. It introduces sharp peaks and ridges all over the surface of the texture. The sharpness of the ridges is controlled by the "Sharpness property. A Sharpness of 2 is the standard value. A sharpness of 1 produces ridges similar to the "Perlin" type except that the overlay combining algorithm is different.

Gain

Gain is used to increase the range of values generated by the function. For instance, take the fBM with Octave=5, Lacunarity=2, Dimension=1 and Perturb=100. Click on the ">>" button. The two numbers that are displayed under the button are the minimum and maximum values generated by the function. It displays 13.3 and 85.3. By the way, the function range which, in fact, is supposed to be from 0 to 1 is converted to 0 to 100 when displayed to ease the user interpretation. If you set the Gain to 140, and click ">>" again, you see that the range is now -1.4 to 99.4. This covers the whole range much better and we get white whites and blacker blacks.

Bias

Bias is used to shift the function values in the negatives or into the positives. For instance, if you enter 1 in the Bias property and click ">>", you will see that the value range now goes from 0.0 to 100.8 (assuming you continued from the above example).

>>

So the >> button displays the range of values actually produced by the function. Note that you will get better estimates if the Material preview window is opened when you change the combiner properties or after you have quick-rendered your object or group. Otherwise, the samples are taken from the tiny square in the material tree.

High and Low cutoff

High and Low cutoff properties are used to select only a portion of the whole values generated by the function. Lets set a Fractal Sum with Octave=5 for instance. Now set the high cutoff to 51 and the low cutoff to 49 and render. This way, we selected a small slice of values going from 49 to 51 to render.


Cutoff = 0 to 100

Cutoff = 49 to 51

You can see that this starts to look like continents. This is not a coincidence since this is exactly the way Fractal planets are made.

If you zoom in onto the surface however, you can see that the continent coast is not that sharp and detailed.


Octave = 5
Cutoff = 49 to 51

Octave = 5
Cutoff = 49.9 to 50.1

Octave = 8
Cutoff = 49.9 to 50.1

Octave = 8
Cutoff = 49.9 to 50.1
Dimension = 1.5

There are 3 modifications we can make. First reduce the range of values from 49.9 to 50.1. The edge is much sharper but we are missing shore details so second modification, increase the number of Octave to 8 and third modification, increase the Fractal Dimension to 1.5 and render. Now we've got a nice coast line. You may increase the amount of water in relation to continent by raising the range of values (high cutoff and low cutoff) used by the function.

Smooth.

When you want to use a combiner to build a bump material, having sharp transitions between black and white is not a good idea. Bumps need smooth transitions. In this case, you will want to use the Smooth checkbox to smoothen out the transitions.

© Yves Poissant, 2002