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 Inout 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