Fractal noise is a well-known effect in After Effects. Probably one of the most used too, it’s versatile enough to create all kinds of effects. Users coming to Blender from an After Effects background might be wondering if there’s a similar effect or at least some way to animate noise. Let’s see how we can replicate it in Blender.
Let’s look at what Fractal Noise really is first. The idea behind fractal noise is to combine several “layers” of noise with increasing scales. Usually decreasing intensity as well. If you look around for fractal noise algorithms you will find these layers being called Octaves, the scale called Frequency, and intensity as Gain. This increasing of the scale makes the noise smaller and smaller, which is why we call it “Fractal”, the noise will be the same just smaller.
Fractal noise is used in many places even outside the field of computer graphics, as part of DAWs or analog synthesizer to generate sounds or control other effects for instance.
Making the fractal noise effect in Blender
Making fractal noise in Blender is easy.
- Add several noise nodes with different scales
- Combine them with a math node set to multiply
You mix as many layers of noise as you want. More layers of noise will add more detail, but will affect Blender’s performance. With Eevee you might also hit the textures limit.
You can also mix the nodes with a RGB Mix. This let’s you control the factor for each layer, which is analogous to the Gain (or intensity) parameter in fractal noise algorithms. This is useful because sometimes the smaller noise layers are too overwhelming, specially if you have too many layers or a very small scale. Blender’s noise also has one cool extra setting: distortion. Try playing with it to make the noise more fluid or fiery. I also recommend adding a colorramp to control the contrast.
Make it move
There are two ways to animate noise, we can change the seed or the coordinates. At the moment Blender doesn’t give us access to the noise’s seed. No problem, though. Changing the seed would make the noise vary completely every frame without any consistency over time, so let’s look at door number 2.
What we want is to animate the coordinates. To be more specific, we want to move through the noise. Note that we don’t want to shuffle the noise around, but have it stay in the same place and move as if flying through it. All we need to achieve this is an extra dimension. For instance, if we are animating the noise on a plane flat on the ground our texture coordinates would be X and Y, so we need to move on Z. Likewise if we have a 3D object we’ll need a 4D texture.
There weren’t any options for 4D noise outside of OSL until the noise node got it in 2.81. When you select the 4D option you get an extra parameter called W, the fourth coordinate. Unfortunately 4D noise is heavier on resources than good ol’ 3D. Depending on your hardware you might not be able to mix more than a couple of layers.
For most uses of fractal noise (VSE/Compositor/VFX) having it on a plane is enough. That means we can take advantage of using only 2 dimensions and use the third to move the noise. We can animate the noise with keyframes or using a simple expression like
#frame / 1000.
Traditional fractal noise uses Perlin (the noise node) but there are other texture nodes we can try.
Here are some examples of other fractal textures:
Have you made something cool with fractal noise? Let me know in the comments!