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

Il mondo e la sua visuale

Creazione del "mondo" 3D che a sua volta contiene tutto il necessario per visualizzare la scena
Creazione del "mondo" 3D che a sua volta contiene tutto il necessario per visualizzare la scena
Link copiato negli appunti

L'oggetto principale, di un mondo 3D creato con Sandy, è l'oggetto World3D, che, a sua volta, conterrà tutti gli altri oggetti quali luci, camere, gruppi, ecc. Tutti gli altri gruppi saranno invece contenuti dall'oggetto rootGroup.

Per prima cosa dobbiamo impostare nel nostro file i packages e le classi da Sandy

import sandy.core.data.*;
import sandy.core.group.*;
import sandy.primitive.*;
import sandy.view.*;
import sandy.core.*;
import sandy.skin.*;
import sandy.util.*;
import sandy.core.transform.*;
import sandy.events.*;

Quindi andiamo a creare alcune variabili che utilizzeremo all'interno dell'esempio

// Definiamo due variabili globali
var screen:ClipScreen; // Superficie iniziale
var world:World3D = World3D.getInstance(); // Il nostro mondo 3D

Ora è necessario inizializzare il "mondo" 3D e mostrarlo a schermo (renderizzarlo)

Listato 2. Inizializzazione e render del "mondo" 3D

// All'interno della funzione init inizializziamo e renderizziamo il mondo

function init( Void ):Void {
    // Creiamo un ClipScreen dove disegneremo il mondo 3D
    screen = new ClipScreen( this.createEmptyMovieClip('screen', 1), 300, 300 );
    
    // Creiamo una telecamera che inquadrerà il nostro mondo
    // Impostiamo una distanza focale e una clip di riferimento da inquadrare

    var cam:Camera3D = new Camera3D( 700, screen );
    
    // Posizioniamo la telecamera 500 pixel in negativo sull'asse Z
    // (la posizione predefinita della camera sarebbe 0,0,0)

    cam.setPosition(0,0,-500);
    
    // Aggiungiamo la telecamera nel mondo 3D
    world.addCamera( cam );
    
    // Creiamo il gruppo principale che conterrà tutti gli altri oggetti
    var bg:Group = new Group();
    
    // e lo agganciamo al mondo
    world.setRootGroup( bg );
    
    // Creiamo la scena (creeremo in seguito la funzione)
    createScene( bg );
    
    // E renderizziamo il mondo
    world.render();
}

La classe World3D è unica, cioè possiamo avere un solo oggetto World3D nel nostro file. In ogni momento possiamo conoscere tale oggetto, utilizzando il metodo World3D.getInstance()

Nella funzione init abbiamo creato un ClipScreen su cui disegnare gli oggetti e abbiamo impostato un oggetto Camera3D, che costituirà il "punto di vista" che utilizzeremo per vedere gli oggetti.

La camera ha una distanza focale che influisce sulla prospettiva e sul modo in cui la scena apparirà, come vedremo meglio in seguito.

La telecamera può essere mossa in ogni momento per cambiare la visuale; per esempio nella nostra funzione l'abbiamo spostata di 500 pixel sull'asse Z, mentre di default sarebbe stata al centro delle coordinate (0,0,0).

Per avviare la creazione della scena abbiamo creato un gruppo principale, quindi abbiamo richiamato la funzione CreateScene e infine abbiamo avviato la renderizzazione del mondo.

"© Petit Publications 2006" - diritti riservati

Ti consigliamo anche