Quando muoviamo una telecamera, ci troviamo ad agire con due differenti sistemi di coordinate: il sistema di coordinate globale di Sandy e quello "locale" della telecamera stessa.
Appena creato l'oggetto World3D e la camera, questi due sistemi sono paralleli, l'asse X punta verso destra, l'asse Y verso l'alto e l'asse Z verso l'interno dello schermo.
Quando spostiamo la telecamera i due sistemi di coordinate non saranno più paralleli. Siccome la telecamera è il nostro "punto zero" da cui inquadriamo il mondo, le coordinate della telecamera rimarranno sempre orientate allo stesso modo, ma muovendo la camera cambieremo il modo in cui visualizziamo gli oggetti e gli assi di riferimento.
Movimenti
Il motivo per cui abbiamo fatto un excursus sulle coordinate globali e locali è che le telecamera in Sandy offrono un grandissima flessibilità: possono essere spostate relativamente alle coordinate globali usando setPosition()
e ruotate intorno agli assi globali grazie alle funzioni rotateX()
, rotateY()
e rotateZ()
.
L'altra possibilità è di muovere e ruotare la telecamera relativamente alle sue coordinate, utilizzando moveUpdwards()
, moveSideways()
e moveForward()
per la traslazione e pan()
, tilt()
e roll()
per la rotazione.
Per comprendere meglio questi aspetti, vediamo una piccola applicazione dove è possibile testare i principali movimenti della telecamera; è un semplice mondo 3d con gli assi, i piani delle coordinate e una piramide situata a coordinate 0,0,0, con un pannello da cui è possibile impostare i principali parametri per la posizione, lo zoom e la rotazione della telecamera.
Clicca per lanciare l'applicazione
Poichè comprendere appieno le possibilità offerte dalla Camera3D permette di creare movimenti e inquadrature particolari, consiglio di sperimentare per qualche minuto tutti i comandi offerti dall'applicazione.
Per chi volesse esaminare il codice sorgente del programma stesso, sono disponibili i sorgenti.
"© Petit Publications 2006" - diritti riservati