Afin de modéliser des motifs complexes (nuages, marbres …), il est nécessaire d'avoir à disposition des algorithmes capables de les générer de façon automatique. Pour introduire une grande diversité et par ailleurs un meilleur réalisme, ces algorithmes se doivent d'introduire de l'aléatoire dans ces motifs. C'est là qu'intervient le bruit de Perlin.
Ken Perlin est chercheur au « Department of Computer Science » au sein de l’université de New
York. Il est aussi le directeur du « Media Research Laboratory » . Récompensées à de nombreuses
reprises, ces recherches portent principalement sur l’animation, le graphisme et le multimédia.
Ce bruit est qualifié de cohérent et c’est ici que réside tout l’intérêt de son utilisation. En effet, il ne s'agit pas de générer des motifs totalement aléatoires, car sinon nous obtiendrions un motif "tacheté" très peu réaliste. En réalité, le bruit de Perlin est une somme de signaux aléatoires de fréquences et d’amplitudes différentes sachant que plus un signal est de fréquence élevée, plus son amplitude est faible.
Dans une image, les basses fréquences constituent le squelette alors que les hautes fréquences représentent plutôt les détails. Dès lors, il semble tout à fait normal d’associer les amplitudes élevées aux signaux de basse fréquence.
La
fonction utilisée dans notre programme a été directement récupérée sur le site
de Ken Perlin ( http://mrl.nyu.edu/~perlin/
). La fonction
requiert trois
coordonnées et renvoie un entier.
Le bruit de Perlin seul
On défini trois seuils v1,v2,v3. Ces seuils sont fixés de manière purement expérimentale et il convient de les modifier jusqu’à obtenir l’effet souhaité. Pour rappel, une texture possède trois couleurs C1, C2, C3.
Soit n la valeur absolue de l’entier retourné par la fonction de Perlin. A partir de n on détermine la couleur du point avec la démarche suivante :
· Si n < v1, on retourne la couleur C1 de la texture.
· Si v1 < n < v2, on fait une interpolation linéaire et l’on retourne la valeur .
· Si v2 < n < v3, on retourne
· Si n > v3, on retourne C3.
Cet effet donne des rendus visuellement non réalistes mais assez intéressants.
L’effet Bois
Cependant à partir de ce bruit, nous pouvons reconstituer des textures très réalistes. Cette fois-ci, n est calculé d’une manière différente en faisant intervenir la partie entière :
Ici on retourne une interpolation sinusoïdale des deux premières couleurs de la texture, soit :
Rem : On aurait très bien pu utiliser la méthode d’interpolation à trois seuils comme pour la texture avec le bruit de Perlin seul. Il s’agit juste ici, d’étudier différentes méthodes.
L’effet Marbre
Pour restituer le visuel de marbre, nous allons une nouvelle fois tirailler le bruit de Perlin de la manière suivante :
A titre d’exemple, on pourra retourner l’interpolation linéaire des deux premières couleurs de la texture, soit :