ClickForArt

Perlin Noise

Perlin noise is the smooth random pattern behind CG clouds, fire and terrain. Ken Perlin made it after working on Tron, and it earned him a technical Oscar.

What is Perlin noise?

Perlin noise is a random pattern that changes smoothly from place to place, so it looks like clouds, marble or rolling hills instead of TV static. Ken Perlin developed it in 1983 as a cheap way to make computer-generated surfaces look less clean and machined.

He had worked at the effects company MAGI on Tron (1982), whose glossy, perfectly even objects were what computer graphics looked like then, and he wanted textures with the irregularity of real materials. He published the method in the 1985 SIGGRAPH paper An Image Synthesizer. In 1997 the Academy of Motion Picture Arts and Sciences gave him a Technical Achievement Award for it, by which point it was built into RenderMan, Maya and most of the other renderers studios used.

How does Perlin noise work?

Picture a square grid laid over the image, with a random arrow at every grid corner. For a point inside a cell, the algorithm measures the offset from each of the four corners, checks how far that offset runs along the corner's arrow, and blends the four answers with a smooth curve. The value is exactly zero on every corner and rises or falls in between, so the pattern has no hard edges and its bumps are all about one cell wide.

That fixed bump size is what makes it useful. You can stack copies at different scales: one layer at the base size, the next at twice the frequency and half the strength, the next at four times, and so on. The stack is called fractal Brownian motion, or fBm, and each layer is an octave. Four to eight octaves give the craggy look of mountains and cumulus, big shapes with smaller ones riding on them.

Is all smooth noise Perlin noise?

No, though the name gets used for most of it. Perlin's method is gradient noise, where the random part is the arrows. Value noise, its simpler cousin, stores a random brightness at each corner and blends those. It's easier to write and looks a little blockier, because its brightest and darkest spots sit on the grid points and the grid shows through. Simplex noise, which Perlin presented in 2001, swaps the square grid for triangles and scales better to three dimensions and more.

Perlin also revised his original in the 2002 paper Improving Noise. The first version blended with the curve 3t² - 2t³, whose second derivative jumps at every cell border, and on bump-mapped surfaces those jumps show up as faint creases along the grid. The new curve, 6t⁵ - 15t⁴ + 10t³, flattens out at the borders in both its first and second derivatives, and the creases disappear. He replaced the random arrows with a fixed set of 12 directions at the same time, because the random set was spread unevenly.

Where you see it

Smoke, fire and water in visual effects, the hills of a Minecraft world, the slowly drifting gradient behind a product launch video: most procedural textures since the late 1980s have noise somewhere inside. One way to spot it is the scale. A single octave of smooth noise has a typical blob size set by its grid, while real clouds show detail at every size, so a cheap noise sky looks oddly uniform until more octaves are added.

Driving motion and backgrounds with noise

Both tools here use value noise stacked four octaves deep, with each octave 2.03 times finer than the last. The extra 0.03 is a common trick that stops the grids of different octaves from lining up.

In Displacement Map, leave Driven by on Noise and the field pushes pixels sideways. Scale sets the size of the swirls, from 20 to 800 pixels of a 1080p frame with 220 as the default. The Liquid preset raises it to 400 with Amount 70 and Speed 0.4 for slow rolling warps, and Crinkle drops it to 40 for a fine shiver.

In Animated Background Generator, set Pattern to Noise to see plain fBm through a color ramp; the Clouds preset does that at Scale 500. The default, Domain warp, feeds noise into the coordinates of more noise, the folded marble look Inigo Quilez describes in his article on the technique, and Detail controls how far it folds.

Try it

Further reading