Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 40 di 51
  • livello principiante
Indice lezioni

Sfocatura degli oggetti

Introduzione alla sfocatura nell'ambiente 3d, molto utile per crere effetti di nebbia, oppure per simulare la profondità di campo dove gli oggetti troppo vicini alla telecamera, o troppo lontani da essa, appaiono sfocati
Introduzione alla sfocatura nell'ambiente 3d, molto utile per crere effetti di nebbia, oppure per simulare la profondità di campo dove gli oggetti troppo vicini alla telecamera, o troppo lontani da essa, appaiono sfocati
Link copiato negli appunti

Analizziamo un altro filtro molto interessante che può tornare utile nelle scene 3D: si tratta del filtro Blur. Questo filtro, come si può intuire dal nome, permette di rendere un movieclip più o meno sfocato.

All'interno di Sandy questo filtro può essere utilizzato per creare effetti di "nebbia", oppure per simulare la profondità di campo dove gli oggetti troppo vicini alla telecamera, o troppo lontani da essa, appaiono sfocati.

Il comando BlurFilter prevede tre parametri: blurX, blurY e quality.

I primi due parametri impostano la quantità di sfocatura orizzontale e verticale, mentre la qualità stabilisce il numero di volte in cui l'operazione debba essere ripetuta.

Andremo ora a creare una scena con oggetti posti a diversa distanza dalla telecamera, quindi a seconda della distanza da essa ne stabiliremo la sfocatura.

Come sempre per prima cosa scriviamo la funzione createScene:

Listato 59. Crea la scena con l'effetto sfocatura

function createScene( bg:Group ):Void {
    bg.addChild( plane = new Plane3D( 2000, 1500, 10, 'quad'));
    plane.setSkin( new MixedSkin( 0xF7FBAE, 80, 0, 100, 1 ));
    var cube:Object3D;
    var skin:MixedSkin;
    var blurFilter:BlurFilter;
    var tg: TransformGroup;
    var transform:Transform3D;
    
    for( i = 0; i < NUM_OBJS; i++ ){
        var cube:Object3D = new Box( 50, 50, 50, 'quad' );
        
        objects.push(cube);
        skin = new MixedSkin( 0xF2B7EE, 100, 0, 100, 1 );
        cube.setSkin( skin );
        
        // Creiamo l'effetto sfocatura
        blurFilter = new BlurFilter(0,0,3);
        skin.filters = new Array(blurFilter);
        // Distribuiamo gli oggetti lungo la scena
        transform = new Transform3D();
        tg = new TransformGroup(transform);
        transform.translate( 40*i - 200, 50, 100*i );
        tg.addChild( cube );
        bg.addChild( tg );
    }
}

Questo codice crea un determinato numero di cubi e ne salva i riferimenti all'interno di un array per potervi accedere in seguito.

Ogni cubo viene disegnato con una MixedSkin: poichè le sfocature saranno diverse e indipendenti l'una dall'altra, ogni oggetto avrà una sua skin univoca.

Per ogni skin creiamo poi una sfocatura di tipo Gaussiano (qualità 3), inizialmente con i valori blurX e blurY pari a 0 e la associamo alla skin sfruttando la proprietà filters.

Come ultima cosa disponiamo i vari cubi lungo la scena.

"© Petit Publications 2006" - diritti riservati

Ti consigliamo anche