We can create a more complex image by changing the way the plug-in displays the pixels between each random value. The "Block" setting keeps every pixel the same value as the last randomly generated value, until it reaches the next value. So, as illustrated in the example above, the 64-pixel blocks on the screen are made up of one random value that is repeated 63 times until we get to the next random value. This happens in both the X and Y directions, although for the purpose of demonstration I'll be using a single strip of pixels in the X-axis as an example.
If we change the "Noise Type" from "Block" to "Linear", we get a completely different result.
Changing the "Noise Type" to "Linear"
A section of the screen with the "Linear" setting, still with a Complexity of 1.
With the "Linear" setting, instead of repeating each pixel 63 times the values are being interpolated between each randomly generated point. The random numbers used to generate the image haven't changed, nor has their position, only the way the pixels between each random number are calculated. If the first random number was 1, and the next random number was 64, then the pixels in between those random numbers would smoothly increase in value, going 1,2,3,4,5 etc up to 64.
It's easier to see this on a graph:
We can see why this "Noise Type" is called "Linear" - when we plot the values of the pixels on a graph we get a bunch of lines. The Fractal Noise plug-in also has 2 other settings- "soft linear" and "spline" - which interpolate between the random values in a smoother manner.
A section of the screen with the "Spline" setting, still with a Complexity of 1.
But even though the output looks different, in all cases the same initial random numbers are used, and they're still "spaced out" every 64 pixels on the same invisible grid. We can compare the differences on a graph (I have left off soft-linear, as these images are for comparison only and the difference between soft-linear and spline is subtle):
Comparing "Block", "Linear" and "Spline" Noise Types on a graph. This graph represents the brightness of 1 strip of pixels on the X-axis, but the principle is the same for both directions.
At the moment we're only using 1 layer of noise (the "Complexity" is 1), but the real magic of Fractal Noise comes when we begin to add more.
To keep things clear, and to help us see exactly what's going on, we'll change the "Noise Type" back to "Block". As we add more layers, the original 64-pixel blocks will remain and the additional layers will build up more detail.
|After Effects refers to additional layers as "Subs" |
When we change the complexity to 2 the screen fills up with a new range of block shapes- you can instantly see the influence of our second layer. It might look a bit chaotic, but we can shuffle things around to make what's happening a bit clearer.
The "Noise Type" is set to "Block", but the "Complexity" has been increased to 2.
Apart from the "Complexity" setting, which determines how many layers you create, the "Sub Settings" controls are the heart of Fractal Noise- they control how detailed the new layers are, and how they combine with each other.
The default values for "Sub Settings" - the heart of Fractal Noise.
The "Sub Offset" values re-position the "Sub" layer over our base, and if you drag the values around it's easy to see the "Sub" sliding over the original layer, and to see how the 2 different layers of noise combine to give a final pattern with more detail.
As part of our effort to simplify everything so we can see exactly what's going on, we can change the "Sub Scaling" to 50%, and move the "Sub Offset" to 32,32. The "Sub Scaling" control is similar to a percentage scale, with the percentage relative to the "size" of the noise values of the base layer. As our original blocks were 64 pixels wide, scaling our new layer to 50 percent gives us blocks that are 32 pixels wide. By setting the "Sub Offset" to 32,32, we are aligning the edges of the blocks on the Sub layer with those on our base layer to demonstrate that we are still just dealing with 2 different grids of random numbers.
Our Sub Layer is aligned with our base layer, so all the blocks are lined up.
By changing the "Sub Rotation", we can rotate the second layer of noise over the first. Once again, this makes it easy to see how we have 2 layers of noise being combined into 1 final image.
You can clearly see the effect of the Sub Layer, which has been rotated 45 degrees over the base layer.
The "Sub Influence" control determines how much our Sub layer effects the base layer- it's a bit like changing the opacity of a layer in After Effects. If we set it to 0, we only see our original array of 64-pixel blocks. As we increase the setting, we see more and more of the Sub layer.
It's easy to think of the "Complexity" control as being similar to creating multiple layers in an After Effects composition, and that the "Sub Influence" control is like altering their opacity. However it's worth knowing that the Subs are combined mathematically in a different way to layer opacities, and so you can have a "Sub Influence" much higher than 100%. Even when the Sub Influence is greater than 100%, the underlying base layer will still be visible- this is why it's called "influence" and not "opacity".
We can add more detail to the image by adding more layers of noise. By changing the "Complexity" to 3, we get a 3rd layer of noise with the "Sub Scaling", "Sub Influence" and "Sub Rotation" settings relative to the second layer. This time our new pixel blocks are 50% of 32, which makes them 16 pixels wide. Setting the "Sub Rotation" back to 0 makes this clear:
We now have 3 layers of noise, which are all aligned with each other. Each layer is half the size of the previous layer, because we set Sub Scaling to 50%.
The essential point to understand about Fractal Noise is that scaling the Subs gives them more detail. In our example above with the "Block" setting, just 1 Sub scaled to 50% has 4 times as many blocks as the base layer- and the second Sub has 4 times as many blocks again. If you don't believe me you can count the squares and check the maths yourself. When you are using a different Noise Type such as "Linear" or "Spline" then the additional detail each Sub layer provides is much more pronounced.
When you use many Subs- by using a high "Complexity" value- you are combining a large range of different details into the final image, all of which are based on the same basic foundation and follow the same basic pattern. This is what makes the noise "fractal".
With the "Sub Scaling" set to 50%, and the "Sub Offset" 32,32 we can clearly see what's going on, because everything is neatly aligned and proportional. But by moving things around a little we change the way the layers interact and we can create some great patterns. By changing the "Sub Influence" to 60%, the "Sub Scaling" to 70%, and moving the "Sub Offset" around, we get something that looks a bit like 60s wallpaper.
We still have 3 layers of noise, but they're no longer neatly aligned. Groovy!
As each layer of detail is scaled relative to the previous layer (according to the "Sub Scaling" control), there will be a point where more levels of complexity no longer add any more detail to the image.
When the overall scale settings (the "Transform" controls, see below) are at their default values of 100%, the base layer numbers are 64 pixels apart. If we set the Sub Scaling at 50%, our 2nd layer will be spaced 32 pixels apart, our 3rd 16, the 4th 8, our 5th 4, our 6th 2, and our 7th layer will have noise values calculated for each pixel. If you increase the "Complexity" from 7 to 8, then you won't see any difference because you can't add noise smaller than 1 pixel. So there will be a limit as to how many layers of noise can add detail to the final result, and that limit depends on what value your "Sub Scaling" is set to, and whether you've scaled the entire effect up with the "Transform" settings.
Because Fractal Noise is generated by a bunch of maths, we can scale it up and move it around without losing any quality- the maths is just recalculated accordingly. This is different to scaling up a piece of video footage, which will lose detail and develop artefacts. When you scale the Fractal Noise, you're simply increasing the distance between the base grid of random numbers- the in-between pixels are still being interpolated using maths, giving a smooth and precise result.
The "Transform" controls reveal these settings that adjust the overall Fractal Noise effect. The Rotation, Scale and Offset Turbulence controls can all be changed and animated without introducing scaling artefacts, or degrading the quality of the image.
The Fractal Noise can be scaled differently along the X and Y-axis, which is extremely useful. For example, with the Y axis (height) scaled to 25%, but the X axis (length) stretched out to 2000%, we get something similar to brushed metal:
Scaling the X & Y axis independently produces this "bushed metal" look.
The "Offset Turbulence" control is really like a position setting. Because Fractal Noise is generated by maths, in theory the layer extends infinitely in both directions. The "Offset Turbulence" setting determines what we can see in the layer window, and animating the value will move the image around.
When animating the "Offset Turbulence" setting the "Perspective Offset" checkbox can make the individual layers of the Fractal Noise more distinct by moving them separately (a bit like a parallax or multiplane animation)- this is normally not wanted, so the default is to have this option off. The effect of the "Perspective Offset" control is only apparent with animation, so it's not easily demonstrated with still images.
While it's easy to think of the "Offset Turbulence" setting as something that is only useful for animation, it often pays to "move around" your fractal noise to find the most suitable area for the effect you're trying to achieve. Even with the same Sub settings, just scrubbing around the "Offset Turbulence" values will reveal a wide range of variations and character within the image. If you're trying to create a natural pattern such as marble or woodgrain, it may take some "searching" before you find a particular patch of fractal noise which you like.
The underlying Fractal Noise pattern can be animated by the "Evolution" control, and if you click "Cycle Evolution" then the pattern can be looped seamlessly- very useful for DVD menus or conference openers. When you enable the "Cycle Evolution" checkbox, you select how many cycles the Fractal Noise will go through before it repeats. If you choose 5, then setting the evolution to "5" (revolutions, not just degrees!) will give you the same result as 0. So by animating the evolution property from 0 to 5 revolutions you will end up with a seamlessly looping piece of video.
If you want to create many versions of the same image, but need them to look different, you can alter the "Random Seed". This is the starting point that the Fractal Noise effect uses to calculate all of the random numbers, so altering it will create a completely different sequence, and therefore a different image. If you're trying to get a particular look and you're close but not quite there, a different Random Seed can give you a fresh approach.
By using the "Block" type of noise, we've seen quite clearly how Fractal Noise is built up from a base layer of random values, and that we can add more layers on top of the base which are scaled, positioned and rotated relative to the base layer. To get the impressive real-world results that make the Fractal Noise plug-in so stunning, the other interpolation methods are more useful. Setting the "Noise Type" to "Linear" returns us to a familiar cloudy-looking image. The "Soft Linear" and "Spline" options give us more options and a softer look, at the cost of an increase in rendering times.
While these settings give us an enormous amount of possibility, an even wider range of effects can be achieved by choosing between different mathematical methods of generating and arranging the random numbers which make up the noise.
At the top of the "Fractal Noise" effects palette you can choose a "Fractal Type". The default setting is "basic", which gives us a cloudy looking image.
The "Fractal Type" options- different basic algorithms that look very different to each other.
Scrolling through the list reveals options such as "Turbulent Smooth", "Dynamic Twist", "Threads" and "Smeary". These names refer to different underlying algorithms that produce the random numbers (and how they're arranged on the invisible grid) that Fractal Noise uses, and they give different results- both in their initial appearance, and how they animate using the "Evolution" control.
There are so many possibilities with these options that it really takes a lot of playing around to get to know them. For example, I think of "Dynamic Twist" as looking like smoke, "Rocky" as looking like camouflage, and "Swirly" as looking like agate (or a big lump of Blackpool Rock). But if you start altering the Sub Settings you can get very different looks.
After using Fractal Noise for many years, I still can't claim that I can predict what each "Fractal Type" will look like with different settings. Sometimes I have a good hunch as to where to begin, but mostly it's a matter of trial and error.
So I'll have to leave you with the knowledge that by combining the 17 different "Fractal Types" with the 4 different "Noise Types", and adjusting the Complexity (number of layers of detail) and the relative size and position of the Subs, we can use the Fractal Noise effect to generate an infinite range of textures and patterns.
The images in this article are mostly greyscale, because the Fractal Noise plug-in renders a greyscale image. Looking at them may not exactly inspire you, because grey isn't that interesting. And I've mostly been using the "Block" setting to help demonstrate how Fractal Noise works, but there's a limit to how excited you can get about a bunch of squares.
|The next step- combining plug-ins |
In real-world use, the Fractal Noise plug-in would only be step 1 in creating the end result, and it would almost always be used with colourising effects like "Colorama" or even just "Tint".
Colorama is probably the most useful partner to Fractal Noise, but you have to stop thinking of the greyscale fractal noise image in terms of a greyscale picture. The shades of grey in fractal noise do not have to reflect how light or dark the end result be, they simply control what colour will be applied by Colorama. If you want to create a woodgrain effect, for example, you would use a range of very similar brown tones, with some very narrow bands of lighter or darker browns:
Light areas of fractal noise do not need to be coloured light, and dark areas do not need to be coloured dark. When using Colorama, think of the greyscales in the fractal noise as instructions for what colour will be applied, rather than as a greyscale "picture" which will have colour added.
Beyond adding colour, a huge range of interesting effects can be achieved by combining Fractal Noise with other plug-ins such as "Find Edges", "CC Vector Blur", "Emboss", or even combining multiple layers of Fractal Noise with different transfer modes. If you ever get bored, just set up some Fractal Noise to evolve slowly, add some colour and apply the CC Kaleida effect- it's better than some of the shows on TV.
Here are some examples to get you started:
All of these images were created in After Effects using the Fractal Noise plug-in.
Most of them also used either "Colorama" or "CC Toner" to colourise the greyscale fractal noise image:
- The "Clouds", "Water" and "Water Droplets" were not colourised, but were placed on top of a blue coloured solid with a transfer mode such as "Add" or "Overlay".
- The "Marble" image is 2 different layers of Fractal Noise (with Colorama) combined with the "Add" transfer mode.
- The "Hammered Bronze" and "Map" images also used the "Find Edges" plug-in, as well as "Colorama".
Hopefully this will inspire you to play around with Fractal Noise, and to come up with your own effects. And I'm waiting for someone to prove me wrong when I say that Fractal Noise is the most versatile plug-in in After Effects.
Chris Zwar firstname.lastname@example.org