Grafica (C.d.S. Informatica) 2006/07

Relazione del Progetto di Grafica assegnato il 27/05/2003 Modellazione e Resa realistica di un carro armato
T-34 russo
di Fabrizio Amici


carro armato presentazione

Obiettivo

L'obiettivo di questo progetto è la modellazione e resa grafica di un interno dove collocare un modellino di un veicolo di terra, aria o acqua a scelta la cui modellazione 3D deve essere particolarmente accurata. Nel mio caso è stato scelto un veicolo di terra e più precisamente un carro armato russo T-34.

Descrizione modello Reale

Il carro armato preso in considerazione è uno dei più famosi della seconda guerra mondiale: il T-34 russo. Per la modellazione sono state prese come spunto le foto presenti su questo sito.

Progettazione oggetti della scena e superfici

La progettazione è suddivisa in 2 parti. La progettazione dell'interno e quella del carro armato. Iniziamo a vedere i passi effettuati per la progettazione dell'interno.

Armadio

L'armadio è composto da 11 superfici. I 4 piedi dell'armadio e le 2 maniglie sono state ottenute da una rivoluzione di curve 2d. Il corpo dell'armadio non è altro che un cubo opportunamente scalato a cui è stata aggiunta una superficie rettangolare (riga.db) per simulare la separazione delle ante. La parte superiore dell'armadio è composta da 3 superfici. Una è ottenuta attraverso l'extruding di una stessa curva 2d copiata più volte e traslata di un valore costante. Le altre due che completano l'armadio sono state create attraverso lo skinning della curva 2d con un punto 3d.
Immagini:
Armadio Piede Armadio 2D Piede Armadio Pomello Armadio 2D
Pomello Armadio Punta Armadio 2D Punta Armadio Punta Armadio

Quadro

Il quadro è formato da 5 superfici. La cornice è formata da quattro cubi opportunamente scalati e ruotati mentre la tela è un semplice piano.
Immagini:
Quadro

Tavolino

Il tavolino è un unica superfice ottenuta attraverso la rivoluzione di una curva 2d.
Immagini:
Tavolino 2D Tavolino



Progettazione carro armato:
Carro Armato Completo
Ora vediamo come è stato progettato il carro armato che vediamo qui in figura nella sua completezza:

Cingolo

Un cingolo è composto da 4 superfici. Ogni singolo cingolo è composto da una superficie cingolo esterno e una cingolo interno e la completano due superfici spessore (una davanti e una dietro). Prima di tutto è stata disegnata la forma del cingolo tramite una curva 2d, che poi successivamente è stata copiata e traslata per poi ottenere attraverso la tecnica dell'extruding il cingolo esterno. Stessa cosa ma con una curva 2d scalata leggermente è stato fatto per ottenere il cingolo interno. I due spessori invece non sono altro che uno skinning delle due curve 2d sopra citate.
Immagini:
Cingolo 2D Spessore Cingolo Cingolo

Parafango

Il parafango è stato creato in modo simile al cingolo. Si è prima disegnata la curva 2d del cingolo; la curva è stata traslata e tramite extruding si è ottenuta la superficie 3d del cingolo a cui poi sono stati aggiunti gli spessori ottenuti tramite skinning di una curva 2d e un punto 3d.
Immagini:
Parafango 2D Spessore Parafango Parafango Interno Parafango

Ruote

Il carro aramto possiede 5 ruote grosse per cingolo con relativo perno e 2 ruote piccole senza perno. Tutte le ruote e i perni sono stati ottenuti tramite cilindri opportunamente scalati.
Immagini:
Ruota

Struttura del carro

Data l'irregolarità del corpo del carro armato è stato scelto di dividerlo in due superfici: una parte superiore e una inferiore. Dal momento che la parte superiore e inferiore del corpo del carro armato devono essere inclinate è stata utilizzata la tecnica dell'extruding di due rettangoli di dimensioni diverse opportunamente traslati. Per completare il tutto sono state aggiunti due piani per chiudere sia la parte superiore che quella inferiore.
Immagini:
Corpo carro superiore Corpo carro inferiore

Torretta

La torretta è stata una delle parti più difficili da costruire data l'irregolarità della sua forma. La parte difficile è stato quello di fornire più curve 2d della forma della torretta che andassero piano piano rimpicciolendosi per poi effettuare l'extruding. Per molti tentavi i risultati non sono stati sufficentemente simili alla torretta reale. Per chiudere la superficie sono state utilizzate due superfici ottenute dallo skinning della curva 2d della torretta con un punto 3d. Infine per concludere sono stati aggiunti un cannone (cilindro scalato) e un paio di cilindri appiattiti sulla sommità della torretta.
Immagini:
Torretta 2D Torretta

Dettagli del carro

Sono stati infine aggiunti dei dettagli al carro armato: 4 barre laterali (cubi scalati) che erano presenti sopra il parafango, 3 cilindretti ai fianchi, 2 sferette allungate nella parte posteriore del carro, 2 piani sul fianco per poi rappresentare in fase di texturing una stella rossa e un numero, 2 cilindretti e una sferetta nella parte frontale insieme ad un fanale. Per quanto riguarda il fanale è stata presa una sfera e la si è trimmata per poi aggiungere un piano sferico.
Cilindretto Frontale Supporto Fanale

Descrizione Scena

La scena finale è una stanza composta da tre pareti e un pavimento. Sono presenti all'interno un armadio, un quadro e un tavolino. Su quest'ultimo è posizionato un carro armato. Il carro armato risulta la vera attrattiva della scena dati gli sforzi profusi in fase realizzativa con XCSurf.
Scena

Immagini di Resa

La maggior parte delle superfici è stata texturata attraverso domain texture. Sono state utilizzate sia texture non ripetute come nel caso della tela, sia texture ripetute come nel caso delle mattonelle di marmo del pavimento. Per le pareti e la cornice del quadro sono stati utilizzati due particolari attributi creati attraverso XCrayt per simulare il legno (nel caso della cornice) e dell'intonaco grigio (nel caso delle pareti).
Scena 1 Scena 2 Scena 3 Scena 4 Scena 5

Gif Animata

Successivamente si è seguito passo passo il tutorial presente su questa pagina per la creazione di una animazione di 300x300 px formata da 86 frame. Finita l'animazione sono stati utilizzati il programma xmovie e il programma gifmerge per ottenere la gif animata (con loop infinito) presente qui sotto.
Animazione Gif

Download

Per scaricare l'archivio contente il progetto cliccare qui.

Problemi e Bug

Tra i bug riscontrati cè stata l'impossibilità di aprire correttamente i file .obj, dal momento che spesso non venivano caricate tutte le superfici .db. In alcuni casi anche importando singolarmente le superfici .db non veniva richiesto il loro salvataggio ed ad una successiva apertura della scena con xcryat apparivano come piani e non erano visualizzabili corretamente, questo poteva portare anche al crash di xcryat durante il caricamento della scena; se ciò accadeva la scena era irrimediabilmente persa ed era necassario riprendere il lavoro da una scena di backup. Se invece la scena viene creata normalmente attraverso il file stanza.c non viene riscontrato nessun errore o crash. Durante la registrazione dei frame dell'animazione sono avvenuti alcuni crash di cui però non ho capito bene la natura.