Fractal Noise
By Neil Blevins
Created On: Nov 20th 2009

In this tutorial I hope to teach you a little bit more about Fractal Noise. Many apps including 3dstudio max have some sort of fractal noise available as a map to plug into your materials, but knowing even just a bit about how a fractal noise is actually calculated can open up a lot of new creative possibilities and new looks.

Perlin Noise

Ken Perlin is a Computer Scientist who, among many other things, developed something called Perlin Noise. This is a simple noise function, and is probably the most common noise function available. Go here to read a little more about him. And here's an example of Perlin Noise, this is the 3dsmax "Noise" Map, set to regular, which is simply perlin noise...



Perlin Noise with Fractal

Anyone who has used 3dsmax knows that to get fractal noise, you can just take your Noise Map and click the "Fractal" radio button...





Fractal isn't a different type of noise, it's still Perlin Noise, it's just that now fractal iterations (sometimes the 'Iterations' parameter is called 'Levels' or 'Octaves') have been applied to your Perlin Noise. Changing the Levels value adds more detail.

But how does fractal actually work under the hood?

Say you take the 3dsmax Noise Map and set it to Fractal with levels set to 2.



What it's actually doing mathematically is it takes your regular Perlin Noise pattern, and overlays a second Perlin Noise pattern that's half as large, and half as strong.



All I did above is take a Max Noise Map set to regular, and a size of 63.5, then I made a second Noise set to regular at half the size (31.75), then brought the two images into photoshop, set the second layer to "Overlay" mode and an Opacity of 50%, and the result, as you can see, is identical to setting your noise to "Fractal" and setting iterations to 2.



Set levels to 3, it adds a third regular noise, again, at half the size, and half the intensity of the second noise.



In a normal noise function, you usually have 2 parameters called Lacunarity and Gain, that controls how small the next fractal iteration will be, and the intensity of those sub patterns, but these controls are unfortunately hidden from the user in the normal 3dsmax Noise Map (which is a real shame, since they're necessary to achieve all sorts of looks).

Here's a Darktree example of a really large Lacunarity, which means the fractal iterations are much smaller in size than normal...



No controls for this in max, you have to accept the defaults that are built into the noise.

Here's an example of Perlin Noise with Fractal Iterations, and a high Gain value, so that the tinier detail gets more intense. Again, this was rendered in Darktree, since max doesn't have these controls available to the user.



Worley Noise with Fractal

Fractal iterations aren't something that only works on Perlin Noise. Max also has a noise type called Cellular (which is actual Worley Noise). Cellular also has fractal controls, and it works the same way, under the hood, it's just adding layers of identical cellular noise at a smaller size and less intensity.



Mapping The Fractal


Mapping is applying some sort of spline or gradient to the fractal to change it's appearance. This can be done in max in two different ways. First, the Gradient Ramp method.

Make a Gradient Ramp Map, place a white flag in the middle of your gradient, make the two ends of the gradient black, and then place 2 black flags just on either side of your white flag.



The resulting gradient should be all black with a small white bar in the middle (see above). Now set the Gradient type to "mapped", and place a Noise Map set to fractal in the slot.



Here's the results...



If this looks familiar, it is, it's pretty much identical to the Blur Electric Map, a free map plugin by Blur Studio.



All the Electric map is is Fractal Noise modified by a gradient, it's just it has a nicer UI and a few other options such as Perturbation parameters. But otherwise, the primary effect of the Electric map can be achieved by mapping the built in 3dsmax Noise Map using a Gradient Ramp.

Here's an alternate way to map noise. Instead of using a Gradient Ramp, use the output panel of your noise, you can use the Color Map to do the same thing you'd normally do in your gradient, except now you only need to use the Noise Map, not the Noise Map AND the Gradient Ramp.



Mapping the Input Signal vs Mapping the Output Signal

The example above shows mapping the output of a noise. Some procedural programs such as Darktree and Filterforge allows the user to map the input signal as well.

Take this filterforge map...


Input Signal Mapped

This map is also just Fractal Noise modifier by a gradient. But why does it look so different from the previous example?


Output Signal Mapped

That's because the input is mapped instead of the output. So the mapping occurs on the original signal, then the fractal iterations are applied, which is called Input Signal Mapped. The first example shows applying the fractal iterations, and then mapping the result, or Output Signal Mapped. In this case, the order does matter, because depending on which order these things happen in, you get really different results.

Unfortunately, there's no way to map the input signal of the Noise Map in 3dsmax. There is a workaround, although it's sort of ugly. Rather than relying on the map to produce the fractal, you can make your own fractal using a composite map.

So make a single noise like this...



Place this noise in the first layer of a Composite Map.

Now add a second layer to your Composite Map, in there, make a copy of your Nosie Map, but set the size to half the size. Then set the layer to Addition, and set the Opacity to 50%.

Now add a third layer. Place in that a copy of your Layer 2 Noise, set it's size to half again, then set that layer to Addition, and set its Opacity to 25%.

Here are all 3 Noises in a Composite Map...



So what you're doing is basically creating your own fractal iterations by compositing noises together manually, just like we did in the "Perlin Noise With Fractal" section.

The result is almost identical to what you got out of Filterforge



Hopefully this gives you just a little more insight into how fractal noise works, and ways to manipulate it inside 3dsmax and other procedural noise generation programs.


This site is ©2009 by Neil Blevins, All rights are reserved.
Back to NeilBlevins.com