# Perlin Noise

English (en) français (fr) 中文（中国大陆）‎ (zh_CN)

This page is the start of a tutorial about using Perlin Noise on LCL applications to generate natural looking images. It will cover both basic theory and real usage examples, with a focus on compilable examples.

Perlin Noise was invented by Ken Perlin to generate textures for a movie called Tron. Today it is widely used on movies and video games to produce natural looking smoke, landscapes, clouds and any texture including marble, irregular glass, etc.

## Getting Started

Perlin Noise is based on the idea of fractals, that things in nature show different degrees of change. On a rocky mountain landscape for example when can see changes with a very big amplitude, which are the mountains themselves. Smaller changes represent irregularities on those mountains and even smaller ones represent rocks.

## First Example

This application demonstrates a simple noise function with the following properties:

• Only 1 harmonic present
• Amplitude of 250 pixels
• Wavelength of 20 pixels
• Frequency of 0.05
• You can use a combo box to choose between Linear, Cossine and Cubic interpolation

Files:

• noise1d.lpi
• noise1d.dpr
• noise.pas

## Persistence Example

This application demonstrates how to sum many noise functions to get a perlin noise function. It has the following properties:

• 3 harmonics present
• Amplitudes of 250, 125 and 62 pixels
• Wavelength of 20, 10, and 5 pixels
• Frequency of 0.05, 0.1, 0.2
• You can use a combo box to choose between Linear, Cossine and Cubic interpolation

Files:

• perlin1d.lpi
• perlin1d.dpr
• noise.pas

## Use Perlin noise to create textures

It is possible to create tilable textures of stone, water, wood... with Perlin noise.

Here is a tutorial on how to do this: BGRABitmap tutorial 8

## Subversion

You can download the source code for the examples and the library using this command: