Grafica (C.d.S. Informatica)
2002/03
Relazione del Progetto di Grafica assegnato il 25/05/2002
-Un'esperienza di modellazione e resa realistica-

Cimaroli Thomas

 

 

- Obiettivo
- Soggetto
- Progettazione oggetti della scena
- Descrizione scena
- Immagini
- Download
 

 

OBIETTIVO

INDICE

Utilizzando i pacchetti xccurv, xcsurf e xcrayt di xcmodel 3.0, realizzare un'esperienza significativa di modellazione e resa realistica.
 

Testo: 

Si progetti prima su carta e poi con i pacchetti messi a disposizione un'intera scena composta da oggetti i cui boundary siano definiti da una o più superfici NURBS. Si richiede la modellazione di almeno un oggetto (una o più superfici) di forma complessa e stilisticamente apprezzabile.
 

SOGGETTO

INDICE

La scena rappresentata nel mio progetto e' composta principalmente da 2 oggetti principali: un tavolo e una sedia. Sopra il tavolo vi e' posizionata un racchettone da beach tennis e la pallina specifica, mentre sulla sedia vi e' appesa una borsa da mare. Mi capita spesso, soprattutto in estate naturalmente, preparandomi per andare al mare, di appoggiare sul tavolino la mia racchetta, con annessa pallina, e di "agganciare" la borsa ad una sedia: ecco spiegato il motivo della scelta di tale soggetto.
 

PROGETTAZIONE OGGETTI

INDICE

Le superfici che compongono la mia scena sono 6, e andrò qui di seguito a descrivere la loro modellazione nello specifico.

Pavimento
Il pavimento e' stato creato semplicemente caricando in xcsurf un cubo predefinito, scalato e traslato più volte fino ad ottenere un risultato soddisfacente.

Tavolo
Il tavolo (insieme alla sedia) e' l'elemento che mi ha sicuramente impegnato di più nella sua realizzazione.
Per le gambe ho creato una curva profilo con xccurv. Quindi ho riportato tale curva in xcsurf e attraverso revolution ho ottenuto il risultato voluto. Tale superficie e' stata poi copiata (attraverso l'apposito tasto) 3 volte, ed ogni gamba e' stata poi traslata. Il pianale superiore del tavolo e' stato ottenuto scalando e traslando in xcsurf un cubo predefinito. Stessa operazione per il sotto-pianale e il cassetto. Il pomello di apertura del cassetto e' una semplice sfera, traslata e scalata. Qui di seguito un'immagine di come appare il tavolino alla fine delle varie operazioni.



Racchetta
La Racchetta e' composta da 3 parti differenti. La prima parte, il "piatto" della racchetta, dove viene colpita la pallina, e' stato realizzato caricando in xcsurf un cilindro. Quest'ultimo e' stato traslato e scalato più volte, poi ho anche modificato i CP per dare, al mio iniziale cilindro, una forma più allungata. La seconda parte, la parte centrale che collega il manico alla prima parte, e' stata creata caricando un xcsurf un cubo, traslato, scalato, e modificato in alcuni suoi CP. Tale superficie poteva essere creata anche tramite skinning. Per la creazione della terza parte, ovvero il manico, ho eseguito le stesse operazioni effettuate per la creazione della prima parte della racchetta. Il risultato mi sembra apprezzabile.



Pallina
La pallina e' stata semplicemente creata caricando in xcsurf una sfera predefinita, successivamente scalata e traslata opportunamente.

Sedia
Le parti che compongono la sedia sono principalmente 5. Le gambe anteriori della sedia sono state modellate partendo dalla creazione di una curva 2d attraverso xccurv, portata poi in xcsurf e attraverso revolution ho ottenuto il risultato voluto. Ho poi copiato tale gamba e le ho traslate fra loro. Per le gambe posteriori ho creato un'altra curva sempre con xccurv, poi ho eseguito gli stessi passi inerenti alle gambe anteriori. Lo schienale e' stato creato tramite skinning partendo da curve 2D da me precedentemente create. La curva e' solo una, ed e' stata copiata 5 volte, e le copie sono state traslate opportunamente sino ad ottenere un risultato soddisfacente (lo schienale non appare infatti piatto, ma e' curvo, come nella realtà). Il sedile e' composto di 2 pezzi ottenuti traslando e scalando in xcsurf un cubo. Infine abbiamo le aste di sostegno delle sedie. Anche esse sono state semplicemente modellate partendo dal solito cubo. Qui di seguito il risultato.
 


Borsa
La modellazione della borsa e' risultata più difficoltosa del previsto. Inizialmente avevo intenzione di creare la parte centrale attraverso swinging, dopo aver creato una curva traiettoria e una curva profilo. Il risultato ottenuto risultava però tutt'altro che soddisfacente, nonostante la continua modificazione della curva profilo. Ho optato quindi di modellare la mia borsa tramite la funzione tubular, usando opportune curve profilo e traiettoria. In questo modo ho ottenuto un risultato molto più realistico. La cinghia della borsa è stata modellata partendo da una curva 2D corrispondente alla "traiettoria" della medesima cinghia. Tale curva e' stata poi copiata e leggermente traslata, e il risultato finale e' stato ottenuto attraverso skinning. Ed ecco la "mia" borsa.

 

DESCRIZIONE SCENA

INDICE

La scena finale e' stata creata caricando tutti gli oggetti in xcsurf e dopo diverse traslazioni e scale ho ottenuto la scena finale. Particolarmente complesso e' risultato il posizionamento della borsa, appesa alla sedia, e quella della racchetta. Ho creato a questo punto un file.c seguendo le specifiche della libreria descriptor in modo da importare tutti i files delle superfici assegnando ad ognuno un attributo standard che verrà regolato in seguito. Ho caricato poi la scena in xcrayt ed effettuando alcune modifiche ho ottenuto il mio risultato finale.

Nella scena ho posizionato 2 point_light, una appena sopra il tavolo, in modo da illuminare al meglio la scena nei suoi oggetti principali, l'altra invece molto più distante rispetto al centro della scena. In questo modo l'effetto visivo risulta molto bello.

 

IMMAGINI

INDICE

Cliccando QUI si accederà alla pagina inerente alle immagini del progetto.

DOWNLOAD

INDICE

Il pacchetto Cimaroli_Chair-Table.tgz comprende la cartella CURVE2D in cui ci sono le curve 2d da me create con xccurv, il file Progetto.c,  il Makefile, tutte le superfici 3 modellate, i file .obj e i file miascena.md, .arg, .mv.