Perlin Noise/zh CN

From Lazarus wiki
Revision as of 09:19, 30 April 2014 by Wangyouworld (talk | contribs) (Perlin Noise/zh CN)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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.


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.

mountain landscape.png


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



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


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



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


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


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

svn co noise


  • Article with the theory of Perlin Noise.