Esperimenti con DisplacementMapFilter e perlinNoise()

Introduco oggi un argomento interessante e vasto che ha il suo “core” nell’uso della classe DisplacementMapFilter. Questa classe permette di applicare un Filtro mappa di spostamento ad un oggetto visuale Flash (Bitmap, Sprite, etc…). Di filtri, Flash CS3, ne ha vari ed appartengono tutti alla stessa famiglia. Tuttavia il DisplacementMapFilter ha caratteristiche davvero particolari, come vedreno, che lo rendono straordinario nella generazione di effetti davvero spettacolari.

DisplacementMapFilter - clicca per aprire il filmato Flash

DisplacementMapFilter – clicca per aprire il filmato Flash

Scarica il sorgente

Synopsis

Ci concentriamo, ovviamente, sulla classe DisplacementMapFilter. Nell’esempio allegato a questo post uso il metodo perlinNoise() solo per generare una mappa di spostamento. In realtà potete usare una qualsiasi altra mappa-immagine, anche una vostra fotografia. Tuttavia, per particolari effetti, sono consigliate immagini simili a quelle generate proprio da perlinNoise() o comunque in una scala cromatica tale da mostrare sfumature di colore omogene (ma dipende da caso per caso).

La classe DisplacementMapFilter utilizza i valori dei pixel di un oggetto BitmapData (noto come immagine della mappa di spostamento) per eseguire un effetto spostamento su un nuovo oggetto. Di solito l’immagine della mappa di spostamento è diversa dall’oggetto di visualizzazione vero e proprio o dall’istanza BitmapData a cui si applica il filtro. Un effetto di spostamento richiede lo spostamento dei pixel nell’immagine filtrata (in altre parole, il loro spostamento dalla posizione originale). Questo filtro può essere utilizzato per creare un effetto spostato, deformato o screziato.

La formula che utilizza questo filtro, per i più curiosi, è la seguente:

1
dstPixel[x, y] = srcPixel[x + ((componentX(x, y) - 128) * scaleX) / 256, y + ((componentY(x, y) - 128) *scaleY) / 256)

Torneremo più avanti a trattare questo particolare filtro, con una serie di esempi davvero interessanti.

Non ci sono commenti per questo Post

Lascia un commento

TAG XHTML PERMESSI: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> INSERIMENTO CODICE:
<pre></pre> // blocco generico
					<code></code> // blocco generico
					[cc_actionscript][/cc_actionscript] // Actionscript
					[cc_actionscript3][/cc_actionscript3] // Actionscript 3
					[cc_css][/cc_css] // CSS Style Sheet
					[cc_html][/cc_html] // HTML
					[cc_js][/cc_js] // Javascript
					[cc_objc][/cc_objc] // Objective-C
					[cc_php][/cc_objc] // PHP
					[cc_sql][/cc_sql] // SQL


Stop SOPA