Perlin editor

By Malcolm McLean homepage

Perlin noise is a technique for producing natural-looking computer effects. It's fractal noise. In two dimensions, start with an image containing random greyscale pixels. Obviously the image has no coherence. Then reduce the resolution by a factor of two, and generate another random image. Add the first image to the second. Now reduce by another factor of two, and so on. You find that the noise has local coherence, pixels close to each other are likely to have the same value.

The actual algorithm Perlin developed is a bit more sophisticated than that, but that's the general idea. You can have noise in three or four dimensions. The algorithm breaks down when you go over five dimensions for technical reasons, but you seldom need more than that.

The editor allows you to play with a Perlin noise generator and apply a palette to it. The you can save the images as GIFs. If you're using Perlin noise in a games development environment, you'll probably want to take note of the parameters. Then the programmers can use the same function, and regenerate your texture or others like it, at will. (You'll still need to save the gif because that contains the record of your palette).

The program can be downloaded from sourceforge (you'll need the source if you want to generate your own textures on the fly).

Here are some textures I've generated with the editor.

This is a raspberry ripple effect. It's done by setting the palette so that it has a red band inthe middle, then using a fairly coarse noise.

This is a texture for dairy cattle. Set the palette to slightly over half black and half white (if you use exactly half and half you don't get a patch effect). use a fairly coarse texture with only one octave.

These are realistic zebra stripes. The image is extremely large scale, and each stripe represents exactly one step of the palette. So the stripes generally go in the same direction, with just a bit of distortion. Unfortunately there are aliasing effects, you probbaly need to JPEG compress this to get rid of them.

Done with the "ocean" palette. The image is stretched along the x-axis to give the impression of horizontal waves.

Here's a landscape for a game map, possibly. The scale is set very large, to produce a realistic coastline. You can make the coastline more complex by adding octaves.