Bruit de Perlin

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Bruit de Perlin en deux dimensions.

Le bruit de Perlin est une texture procédurale utilisée comme effet visuel pour augmenter le réalisme apparent dans la synthèse d'image. La fonction a une apparence pseudo-aléatoire, et pourtant tous ses détails visuels sont de taille égale (voir image). Cette propriété permet à cette texture d'être facilement contrôlable. De multiples copies zoomées de bruit de Perlin peuvent être insérées dans des expressions mathématiques pour créer une grande variété de textures procédurales.

Usages[modifier | modifier le code]

Bruit de Perlin redimensionné et combiné à lui-même pour créer un bruit fractal.

Le bruit de Perlin est une texture procédurale primitive, c'est un bruit de gradient (en) (par opposition aux bruits de valeur) utilisé pour améliorer le réalisme des infographies. La fonction a un aspect pseudo-aléatoire, cependant ses détails sont de la même taille ; cette propriété la rend facilement contrôlable en la combinant à différentes échelles.

Le bruit de Perlin est souvent utilisé dans les images de synthèse pour des éléments tels que le feu, la fumée ou les nuages.

Les démos font couramment usage du bruit de Perlin car il permet de générer des textures en étant très économique en termes d'espace mémoire.

Développement[modifier | modifier le code]

Le bruit de Perlin a été développé par Ken Perlin (en) en 1985. À cette époque, après avoir travaillé sur les effets spéciaux de Tron pour MAGI (en) en 1981, il cherchait à éviter le look « machinique »[1]. Il commença donc par mettre au point une fonction pseudo-aléatoire de bruit qui remplit les trois dimensions de l'espace[2],[3], avant d'inventer l'année suivante le premier langage de shading (en)[4]. Ses travaux sur les textures procédurales ont valu à Ken Perlin l'Academy Award for Technical Achievement (en) en 1997[5].

Algorithme[modifier | modifier le code]

Le bruit de Perlin est couramment utilisé à deux, trois, voire quatre dimensions, mais il peut être défini pour un quelconque nombre de dimension.

Soit une grille de dimension n. Chaque coordonnée de la grille stocke un gradient de l'unité de longueur en n dimensions. Pour échantillonner, déterminer dans quelle cellule de la grille on se trouve, et ensuite calculer les vecteurs à n dimensions de l'emplacement de l'échantillon à chaque coordonnée de la grille de la cellule. Pour chaque coordonnée de la grille, de calculer les produits scalaires de la distance correspondante, et des vecteurs de gradient. Enfin, interpoler ces produits scalaires en utilisant une fonction dont la dérivée première (et si possible dérivée seconde aussi) est nulle au niveau des deux points d'extrémité.

En 2001, Ken Perlin a publié le bruit de Simplex (en), qui est similaire mais qui utilise une grille plus simple qui atténue certains problèmes du bruit « classique » de Perlin et qui réduit la complexité de calcul.

Annexes[modifier | modifier le code]

Sur les autres projets Wikimedia :

Notes et références[modifier | modifier le code]

  1. (en) Ken Perlin, « History », sur www.noisemachine.com (consulté le 19 mai 2014).
  2. (en) Ken Perlin, « Controlled random primitive », sur www.noisemachine.com (consulté le 19 mai 2014).
  3. (en) Ken Perlin, « coherent noise function over 1, 2 or 3 dimensions », sur nyu.edu (consulté le 19 mai 2014)
    Code (en C) de la première version de la fonction, en 1983.
  4. (en) Ken Perlin, « Rapid adoption », sur www.noisemachine.com (consulté le 19 mai 2014).
  5. (en) Ken Perlin, « Noise and Turbulence », sur nyu.edu (consulté le 19 mai 2014)

Article connexe[modifier | modifier le code]

Liens externes[modifier | modifier le code]