Perlin Noise

From Lazarus-ccr

Jump to: navigation, search

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.

Image:mountain_landscape.png


[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

Image:Noise1D.png

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

Image:Perlin1D.png

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.