Perlin Noise
From Lazarus-ccr
English (en) Français (fr)
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.
Contents |
[edit] 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.
[edit] 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
[edit] 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
[edit] Subversion
You can download the source code for the examples and the library using this command:
svn co https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr/examples/noise noise
[edit] External Links
- Article with the theory of Perlin Noise.



