Sign in Join
Wiki copytemporary

Perlin Noise

English · Français · 中文(中国)

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:

Files:

Persistence Example

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

Files:

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:

svn co https://svn.code.sf.net/p/lazarus-ccr/svn/examples/noise noise

External Links


From the Free Pascal wiki, page "Perlin Noise", as it stood on 2019-04-11 after a change by PascalR, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Revision 2, last changed by WikiArchive .

Edited on wiki.freepascal.org by 8 people, 2006–2019

From the official wiki's backup of 26 May 2024: who edited this page there, and when. Edits made there after that date were not recorded, and the earlier versions are not shown here; the main page says why.

WhenWhoWhat changed
Sekelsenmat
Sekelsenmat
Sekelsenmat
Sekelsenmat
Sekelsenmat
Sekelsenmat
VincentSubversion: moved noise to examples
Paulatreides
Chronoscategory
Chronoscategory
CircularSubversion: link towards perlin noise textures
Jwdietrich
JwdietrichCategorized.
GgeldenhuysExternal Links: Using a Internet Archive link because the original link doesn't exist any more. (minor)
PascalRSubversion
PascalRSubversion

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.