Création de textures avec les fonctions de bruit aléatoire

Pour modifier l'aspect d'un bitmap, vous pouvez lui appliquer un effet de bruit à l'aide de la méthode noise() ou de la méthode perlinNoise(). La « neige » qui apparaît sur l'écran d'un téléviseur mal réglé est du bruit, ou du souffle.

Pour appliquer un effet de bruit à un bitmap, utilisez la méthode noise(). Cette méthode applique une valeur colorimétrique aléatoire aux pixels de la zone spécifiée d'une image bitmap.

Cette méthode accepte cinq paramètres :

L'exemple suivant crée une image bitmap et lui applique un motif de bruit bleu :

import flash.display.Bitmap;
import flash.display.BitmapData;

var myBitmap:BitmapData = new BitmapData(250, 250,false, 0xff000000);
myBitmap.noise(500, 0, 255, BitmapDataChannel.BLUE,false);
var image:Bitmap = new Bitmap(myBitmap);
addChild(image);

Si vous souhaitez créer une texture d'aspect plus organique, utilisez la méthode perlinNoise() . La méthode perlinNoise() produit des textures organiques plus réalistes, qui sont idéales pour des effets de fumée, de nuage, d'eau, de flamme ou même d'explosion.

Comme la méthode perlinNoise() fait appel à un algorithme, elle nécessite moins de mémoire vive que les textures à base de bitmaps. Toutefois, elle peut malgré tout consommer beaucoup de ressources processeur, ce qui risque de ralentir le contenu Flash et de provoquer des rafraîchissements d'écran plus lents que la cadence nominale, en particulier sur les ordinateurs peu récents. En effet, les algorithmes de cette méthode effectuent des calculs en virgule flottante.

Cette méthode accepte neuf paramètres (les six premiers sont obligatoires) :

L'exemple suivant crée un objet BitmapData de 150 x 150 pixels qui appelle la méthode perlinNoise() pour générer un effet de nuage vert et bleu :

import flash.display.Bitmap;
import flash.display.BitmapData;

var myBitmapDataObject:BitmapData = new BitmapData(150, 150, false, 0x00FF0000);

var seed:Number = Math.floor(Math.random() * 100);
var channels:uint = BitmapDataChannel.GREEN | BitmapDataChannel.BLUE 
myBitmapDataObject.perlinNoise(100, 80, 6, seed, false, true, channels, false, null);

var myBitmap:Bitmap = new Bitmap(myBitmapDataObject);
addChild(myBitmap);

Flash CS3

 

M'envoyer un message électronique lorsque des commentaires sont ajoutés à cette page | Rapport de commentaire

Page en cours: http://livedocs.adobe.com/flash/9.0_fr/main/00000248.html