Grafica (C.d.L.S. Informatica)
2006/2007
Relazione del Progetto di Grafica
Modellazione e Resa realistica di Truck da corsa
di Regoli Andrea



Obiettivo


L'obiettivo del progetto era la modellazione e la resa, mediante l'utilizzo del sistema di modellazione Xcmodel 4.0, di un mezzo di trasporto.
Ho deciso quindi di modellizzare la motrice di un camion, in versione "race".


Descrizione Scena


La scena rappresenta la motrice di un tir in versione race. Il truck e' stato localizzato all' interno di un' officina. La scena presenta un garage con serranda, una pila di gomme pogiate sul pavimento affianco ad essa, un tavolo da lavoro in legno e al di sopra una gomma volutamente senza texture per farne risaltare le superfici


Progettazione oggetti della scena e superfici

Ruota

La ruota e' stata realizzata come primo "pezzo" del truck. All' inizio non conoscevo ancora molto bene lo strumento xcsurf e in particolare revolution. Revolution appunto si sarebbe prestato molto bene per la sua realizzazione.

La tecnica usata da me consiste nella realizzazione di 3 cerchi

Questi 3 cerchi sono stati importati 2 volte in xcsurf, sono stati distanziati tra di loro della dimensione del battistrada, attraverso l' utilizzo di translation.
A questo punto attraverso extruding e' stata realizzata la superficie del battistrada.
Il cerchio medio e' stato distanziato ancora un po' per rendere l' idea di bombatura della gomma.
A questo punto si e' ottenuto il cerchio superiore in linea con il cerchio inferiore e piu' spostato il cerchio medio.
E' stata realizzata una superficie attraverso skinning dal cerchio superiore a quello medio, e un' altra superficie dal cerchio medio a quello inferiore.
Ecco la sequenza di screenshot in xcsurf.

Il battistrada


Lato della ruota con bombatura


Cerchio interno dove verra' applicata la texture


Risultato finale della ruota


Di seguito e' possibile vedere nel render finale la gomma senza texture e senza la superficie copricerchio poggiata sul tavolo, per fare risaltare bene le superfici create.
Anche senza l' utilizzo di revolution il risultato finale e' stato buono, solo piu' laborioso.

Parafango

La realizzazione del parafango anteriore e' stata una delle superfici piu' difficili da realizzare questo perche' non si poteva utilizzare xcbool per "forare" un solido.
Sono state create 2 curve, la prima che rappresenta la meta' di una circonferenza, e al di sopra una specie "di rettangolo", attraverso skinning si e' realizzata la superficie tra le due.

Ora bisogna realizzare la parte interna del parafango, cioe' lo scasso dove posizionare la gomma. Per realizzare cio' e' stata traslato internamente la curva che rappresenta la meta' di una circonferenza e attraverso extruding si e' realizzata la superficie che unisce il semicerchio esterno con quello interno. Per ultimo si e' realizzato una linea che chiude la semicirconferenza e si e' realizzato attraverso skinning la superficie.


Scalini

La realizzazione degli scalini e' stata realizzata attraverso l' utilizzo di 2 curve, una curva verticale che rappresenta il profilo degli scalini e una curva orizzontale (pensando alle 3 dimensioni) che rappresenta la superficie del truck e lo scasso.

Queste 2 curve sono state poi caricate 2 volte in xcsurf ed e' stato applicato extruding.


Ed eccoli finiti:


Sportello

Per lo sportello questo screenshot con xccurv mostra come e' stato realizzato.

Lo sportello e' composto quindi da 2 superfici una che unisce la linea esterna con quella interna, e poi l' interno del vetro.
Nel rendering della scena lo sportello e' stato texturizzato, mentre il vetro e' un materiale.

Barra Targa

Per realizzare questo pezzo del truck e' stata creata una curva e in seguito e' stata caricata 2 volte in xcsurf.
E' stata poi traslata in profondita' e attraverso extruding si e' realizzata la superficie



Immagini di Resa


Le texture sono state applicate utilizzando sia la projection che la domain texture. Nel caso delle immagini degli sportelli, del paraurti, del drago posizionato dietro la cabina, e le fiamme sui lati e' stata usata la projection texture. Nel caso invece delle gomme il battistrada e' stato applicato con la domain texture, per applicarlo perfettamente su tutta la superfice, che essendo una sezione di un cilindro non permetteva projection. Le texture sono state convertire da jpg a ppm attraverso gimp ed in seguito convertite da ppm ad hr attraverso xcmovie.
I render sono stati realizzati giocando con le luci.

Questi 2 render sono stati realizzati posizionando 1 luce distante all' esterno dell' officina e sollevando la saracinesca.

Screenshot del Banco dell' officina.

Questi 2 screenshot sono stati realizzati mantenendo la camera fissa e giocando con le luci.

Screenshot del Truck visto da dietro

Per realizzare gli screenshot 1 e 2 e' stata applicata una luce subito dietro al truck e 4 spot light agli angoli della stanza. Nel terzo screen invece si nota come e' stata spenta la luce posizionata dietro

Screenshot del Truck visto di lato

In questi screenshot sono accese solo le 4 spot light agli angoli dell' officina, la saracinesca e' calata e non ci sono luci aggiunte.

Dettagli Battistrada

Per realizzare questo screenshot e' stato rimosso un pezzo del modello, per mostrare il risultato ottenuto applicando la domain texture sulla superficie della gomma.

La scena e' stata creata attraverso la libreria descriptor e lo script in C. La scena creata attraverso lo script posiziona le 4 spot light agli angoli dell' officina e posiziona una luca distante all' esterno che influisce nella scena solo alzando la superficie della saracinesca.
Come detto per realizzare gli screenshot dopo la costruzione della scena tramite script, sono state aggiunte o rimosse delle luci.


Download


Per scaricare il pacchetto del progetto cliccate qui.


Animazione


Per visualizzare l' animazione creata da console eseguire:
make video
verranno generati le 100 scene che compongono l' animazione. Con xcrayt si effettua il render delle scene e con xcmovie si visiona l' animazione creata.
Per visualizzare la gif animata esportata da xcmovie cliccate qui


Problemi e bug


Sono stati riscontrati alcuni bug. Di seguito sono riportati quelli riscontrati con maggiore frequenza.

xccurv

Mentre si lavora sulle curve ogni tanto si chiude apparentemente senza motivazioni.
Ho notato che cio' accade piu' spesso quando e' da un po che lo si utilizza

xcmovie

C'e' stata un' immagine in ppm che non riusciva a caricare... ruotandola invece l' ha caricata correttamente, quindi per applicare la texture ho poi ruotato l' oggetto.
Attraverso xcrayt ho generato il file .hra con il video, l' ho aperto con xcmovie e viene visualizzato correttamente, quando effetto l' esportazione in gif, il software indica di avercela fatta in maniera corretta e genera un file .gif, ma impossibile da visualizzare.
Per questo non e' stato possibile generare l' animazione in .gif

xcrayt

Molte volte durante il render si bloccava e in console non veniva scritto nulla, quindi e' stato impossibile capire perche'.
A volte e' bastato spostare la camera altre volte invece non non si e' potuto realizzare screenshot.
Per effettuare lo screenshot da dietro dopo vari tentativi falliti ho eliminato il muro posteriore per riuscire a realizzare degli screen, quindi probabilmente la camera urtava gli oggetti anche se "ad occhio" non sembrava.
Altre volte invece non ho trovato una relazione o possibile motivo per il quale si bloccasse.


Torna su