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 |
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 |
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 |
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 |
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 |
Cliccando QUI si accederà alla pagina inerente alle immagini del progetto.
DOWNLOAD |
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.