Fractal Noise
By Neil Blevins
Created On: Nov 20th 2009
Updated On: Dec 7th 2024
Software: 3dsmax, Blender, Darktree, Filterforge
In this tutorial I hope to teach you a little bit more about Fractal
Noise. Many 3d apps including 3dsmax and Blender 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.
The image below is an example of Perlin Noise.

If you're using 3dsmax, you can get the same exact result by using a
"Noise Map" and set it to "Regular".

The main parameter you can adjust is "Size". Set "Size" smaller, and
your noise will be smaller. For example, let's change "Size" from 63.5
as above to a value of 31.75...
Also note, in some other 3d packages, the "Size" parameter is called
"Frequency". "Frequency" does the same thing as "Size", but is the
inverse. So with "Size", a larger "Size" means a larger pattern. With
"Frequency", a larger "Frequency" means a smaller pattern.
Perlin Noise with Fractal
In 3dsmax, to get a fractal noise, you take the Noise
Map and click the "Fractal"
radio button...

And you get the resulting image...

Fractal isn't a different type of noise, it's still Perlin Noise, it's
just that now "Fractal Iterations" have been applied to your Perlin
Noise. Sometimes "Fractal Iterations" is called 'Levels' or 'Octaves'
or 'Detail',
for example, in 3dsmax, if you look at the "Noise Map" interface above,
there's a parameter called "Levels" set to 3, this is in fact the
"Fractal Iterations" parameter by a different name. 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.
The result is below.

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 3dsmax "Noise Map" set to "Regular", and a
"Size" of
63.5, then I made a second "Noise Map" 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%.

The result in photoshop is identical to a 3dsmax "Noise Map" set to
"Fractal" and setting
"Fractal Iterations" (or "Levels", in the 3dsmax interface) to a value
of 2.
If you set "Fractal Iterations" to 3, it adds a third regular noise,
again, at half the
size, and half the intensity of the second noise.

In the mathematical Perlin Noise function, there are two extra
parameters you should know about...
- Lacunarity: that controls the size of the next fractal
iterations. So the size of your first level (the image on the left
above) stays the same, but the size of the second, third, etc
iterations is will be bigger or smaller than normal based on your
"Lacunarity"
value.
- Gain: the intensity of "Fractal Iterations". Again, the image on
the left above stays the same, but the second, third etc iteration will
be darker or lighter depending on the "Gain" value.
These useful controls
are
unfortunately hidden from the user in the normal 3dsmax "Noise Map".
They still exist internally, set to a default value, but the user can't
change them, which is a real shame, since they're necessary to achieve
all sorts of
looks.
The 3d application Blender's Noise Texture gives you access to
Lacunarity, but not Gain.

Here's another application called Darktree, it gives you control over
both of the extra parameters. Lets start with "Lacunarity".

For example, the higher the "Lacunarity" value, the "Fractal
Iterations" are much smaller in size than normal.
So instead of this when doing 2 "Fractal Iterations"...

If you make the "Lacunarity" value larger, you get this with "Fractal
Iterations" set to 2...

Here's another Darktree example, a Perlin Noise with Fractal
Iterations, and a high
"Gain" value, so that the tinier detail gets more intense.

Increasing the "Gain" basically goes from this...

to this...

Worley Noise with Fractal
Fractal iterations aren't something that only works
on Perlin Noise. 3dsmax 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 3dsmax 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 Noise
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 ©2025 by Neil Blevins, All rights are reserved.
Return to
NeilBlevins.com