Come nasce un’immagine 3D. I parte: object space e world space

Sui forum “tecnologici” di tutto il mondo si parla diffusamente di grafica 3D, gpu, alu, tmu, stream processor, vertex e pixel shader, antialiasing, ecc. Tutti termini che per gli addetti ai lavori e per chi ha una certa confidenza con una pipeline 3D sono non soltanto familiari ma evocativi di interi mondi: anzi, sarebbe opportuno dire “spazi“.

La creazione di un semplice oggetto 3D passa, infatti, attraverso più ambienti che ne definiscono le caratteristiche di posizione, forma, colore, consistenza, orientazione, trasformano queste caratteristiche in coordinate e mettono in relazione le coordinate di quell’oggetto con quelle di altri oggetti per farli interagire tra di loro.

L’idea di oggi è quella di passare in rassegna, in maniera sommaria, questi spazi e le loro caratteristiche, in modo da dare, anche a chi non avesse particolare dimestichezza con una pipeline 3D, almeno una vaga idea del lavoro che sta dietro la creazione di quelle immagini che siamo abituati a vedere quando giochiamo o usiamo programmi di computer grafica.

La creazione di una scena complessa passa attraverso alcune tappe elementari:

– la creazione dei singoli oggetti contenuti nella scena

– il posizionamento di questi oggetti all’interno di uno spazio che ne stabilisca una prima forma di relazione reciproca

– la definizione, all’interno di questo spazio, del punto di vista di un ipotetico osservatore e di alcuni parametri, come ad esempio, l’illuminazione

– la definizione dello spazio effettivamente visualizzato dall’osservatore in questione

– la rimozione di tutte le superfici nascoste alla vista dell’osservatore

– le operazioni di rendering

– la trasformazione di uno spazio 3D in uno 2D che possa essere visualizzato sul monitor di un pc.

 

 corel-2.bmp

Il primo passo è quello di definire un oggetto, ad esempio un cubo o un cilindro o un bicchiere. Per farlo si adopera uno spazio detto OBJECT SPACE o MODEL SPACE, in cui ogni singolo oggetto è rappresentato con un suo sistema di coordinate. Questo significa che, ad esempio nel caso del cubo, si fissa un punto, sul cubo o interno ad esso, come origine degli assi (sarebbe opportuno scegliere un vertice o il baricentro dell’oggetto) e si utilizza tale origine per definire la posizione e le dimensioni dell’oggetto in quello spazio; questo punto si definisce anche pivot point o object origin. Se nella scena compaiono altri oggetti, si fa la stessa cosa per ciascuno di essi, prendendo come origine, di volta in volta, un punto su ciascun oggetto.

Quindi ogni elemento risulta avere un suo proprio sistema di coordinate e ad ognuno è associato un pivot point tramite il quale è possibile traslare o far ruotare l’oggetto stesso che si muoverà come un corpo rigido, in quanto le sue coordinate restano solidali al punto di controllo. Caratteristiche di questo spazio sono l’utilizzo di coordinate “locali” (ogni oggetto ha le sue) e la facilità di modellazione.

Gli oggetti possono non essere in alcuna relazione tra loro e sono rappresentati in forma di vettori in coordinate omogenee con le loro normali; ciò significa che un oggetto tridimensionale sarà rappresentato da una quaterna di numeri (x, y, z, w). In tal modo, ad ogni terna di numeri x, y, z, corrisponderà una infinità di elementi simili nello spazio in coordinate omogenee, al variare di w.

Una volta definiti, gli oggetti sono posizionati all’interno di uno spazio comune, detto WORLD SPACE, in cui essi sono mesi in reciproca relazione spaziale potendo fare riferimento ad un sistema di coordinate unico. In grafica 3D si fa uso di una terna di riferimento “sinistra”, in cui il pollice rappresenta l’asse Y, il medio l’asse X e l’indice l’asse Z

corel1.bmp

In questo ambiente si definiscono anche le proprietà dei singoli oggetti e delle loro superfici, il tipo di animazione e di illuminazione. Il vantaggio dell’utilizzo di coordinate omogenee risiede nella possibilità di effettuare una trasformazione di coordinate, una traslazione, uno scaling, un operazione di shearing, una rotazione di un oggetto attorno ad uno dei suoi assi, ecc. facendo uso di moltiplicazioni tra vettori e matrici. Lo stesso posizionamento dei singoli oggetti all’interno del world space è effettuato tramite una moltiplicazione tra il vettore rappresentativo dell’oggetto e la matrice che definisce il nuovo sistema di assi.

corel-4.bmp   corel-3.bmp      corel-5.bmp

A questo punto, abbiamo un insieme di oggetti elementari, di cui sono state definite le caratteristiche, posizionati all’interno di un ambiente, a formare una scena complessa. A questa scena, però, mancano ancora diverse cose: sono stati “fabbricati” alcuni oggetti a cui è stata data una forma, una dimensione e sono stati disposti all’interno di un determinato ambiente condaterminate caratteristiche; ma a questi oggetti mancano ancora colore e consistenza. Inoltre non c’è nessuno che possa muoversi all’interno di questo ambiente per esplorarlo.

Il prossimo passo sarà quello di mettere un osservatore all’interno della stanza e stabilire il suo punto di vista e la porzione o spazio dell’immagine che è in grado di visualizzare. Questo è quello che avviene nel VIEW SPACE o CAMERA SPACE.

Press ESC to close