di  -  mercoledì 11 marzo 2009

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.

8 Commenti »

I commenti inseriti dai lettori di AppuntiDigitali non sono oggetto di moderazione preventiva, ma solo di eventuale filtro antispam. Qualora si ravvisi un contenuto non consono (offensivo o diffamatorio) si prega di contattare l'amministrazione di Appunti Digitali all'indirizzo info@appuntidigitali.it, specificando quale sia il commento in oggetto.

  • # 1
    MarcoPon
     scrive: 

    Chi si rilegge! :)
    E’ sempre un piacere. I miei rispetti, e auguri per il prosieguo della serie!

    Bye!

  • # 2
    yossarian (Autore del post)
     scrive: 

    ciao Marco; mi fa molto piacere risentirti.

    Grazie per gli auguri

  • # 3
    Come nasce un’immagine 3D. II parte: view space e clip space - Appunti Digitali
     scrive: 

    […] scorsa puntata, avevamo creato gli oggetti e/o i personaggi presenti in una determinata scena e li avevamo […]

  • # 4
    Il 3D, dalla teoria alla pratica: schema a blocchi di una GPU - Appunti Digitali
     scrive: 

    […] si è già diffusamente parlato del funzionamento dei singoli stadi di una FF pipeline, mi limito a postarne l’immagine per […]

  • # 5
    Grafica: una questione di memoria. - Appunti Digitali
     scrive: 

    […] aver analizzato la genesi delle primitive di un’immagine 3D e aver iniziato ad introdurre lo schema a blocchi di una gpu , passiamo, questa settimana, ad […]

  • # 6
    Gianni
     scrive: 

    professor yossarian sono un ragazzo di 31 anni da un pò di tempo mi gira in testa un idea di effetti in 3D visibbili ad occhio nudo e in movimento con delle specifiche azzioni nulla di anormale o di osceno non si preoccupi vorrei sapere se lei fosse interessato al mio proggetto che a mia veduta dovrebbe fruttare un bel po di milardi di euro

  • # 7
    yossarian (Autore del post)
     scrive: 

    @ Gianni

    Ti ringrazio per l’appellativo ma non sono professore ma solo un più modesto ingegnere elettronico.
    Non che non mi interessi ma, probabilmente, e se non ho capito male, per il tuo progetto, hai bisogno più di qualcuno pratico di informatica. Io mi occupo di hardware e la mia conoscenza del software e dei linguaggi di programmazione è molto “scolastica” e poco approfondita rispetto a chi si occupa, invece, di scrivere software o fa, addirittura, il coder di professione.

    Quindi, temo di non poterti, purtroppo, aiutare a sviluppare il tuo porgetto.

  • # 8
    Tecniche di filtraggio: texture mapping and filtering. Prima parte: le texture 2D - Appunti Digitali
     scrive: 

    […] chip grafici. Questa volta faremo un breve cenno alle tecniche di texture mapping e filtering. Nei tre articoli riguardanti la realizzazione di un’immagine 3D, avevamo visto che dopo aver disegnato le geometrie, disposto gli oggetti all’interno dello […]

Scrivi un commento!

Aggiungi il commento, oppure trackback dal tuo sito.

I commenti inseriti dai lettori di AppuntiDigitali non sono oggetto di moderazione preventiva, ma solo di eventuale filtro antispam. Qualora si ravvisi un contenuto non consono (offensivo o diffamatorio) si prega di contattare l'amministrazione di Appunti Digitali all'indirizzo info@appuntidigitali.it, specificando quale sia il commento in oggetto.