Relazione del Secondo Progetto di grafica di Marco Vit

Realizzazione di un oggetto dettagliato con xcmodel, xccurv, xcsurf e xcrayt

N.B: Nella scena il ritratto non è una texture bensì un insieme di superfici NURBS




Installazione e preparazione

Basta scaricare l'archivio vit_lavabo.tgz e metterlo in una directory a scelta.
Installare xcmodel, xcsurf, xcrayt, xccurv, nella stessa directory xyzdir e compilare le librerie descriptor (oppure avere libdescriptor.a e libMATRIX.a nel percorso standard di ricerca delle librerie statiche) .
Digitare i comandi per avere xyzdir come directory corrente nella propria shell e poi digitare i seguenti comandi:
tar xvzf ProgettoDue.tgz per sompattare il progetto
cd ProgettoDue per entrare nella directory del progetto
make per preparare i file e copiarli nella directory xyzdir/ProgettoDue/scena/modellovit
In tale directory ora sarà possibile trovare tutti i file necessari a xcrayt per renderizzare la scena compreso il file scena.md che costituisce la scena stessa.



La scena e le sue parti

La scena è composta dal pavimento (con le mattonelle), muro (random texture nera e grigia), una "spot light" posta dietro il muro, una vetrata (il ritratto) e un lavabo in marmo.

Il pavimento: è un semplice piano scalato per poter contenere più mattonelle, ruotato in x per potergli applicare la texture "pavimento2.hr", scalato e ruotato nuovamente per occupare lo spazio di tutta la scena.

Il muro: è composto da 4 trapezi (non so perchè ma la superfice generata dall'extruding dei due rettangoli di bordo non veniva visualizzata).
La texture messa sul muro è di tipo casuale con 4 tonalità di grgio e nero con probabilità a calare dal più chiaro al più scuro.


Il lavabo

è formato da tre parti:

La vasca è composta per swinging di una sezione a forma di "uncino" su una traiettoria a fiore composta da 4 semicerchi.
Il sostegno è stato generato con uno script di octave. Tale scipt prende in input tre curve che abbiano stesso grado, stesso numero di CP e stessa partizione nodale estesa.
La prima curva rappresenta la parte finale del sostegno, un'altra la sezione della colonna nella parte a spirale, l'ultima rappresenta la forma della base.
La parte sopra viene generata con due istanze concentriche e conplanari della prima curva, che hanno scala differente, con sotto un istanza della seconda curva di dimensioni paragonabili alla più piccola delle prime due. Se la più piccola delle curve più alte ha peso 0,711 si ottiene un raccordo circolare.
Per la parte "a vite" della colonna si sono usate ripetizione della stessa curva traslate in z e ruotate di 45 gradi.
Per la parte di sostegno si è usata una tecnica simile alla prima parte.
La base È un semplice prisma a base ottagonale.

La finestra

La finestra è un insieme di diciannove superfici trasparenti colorate dove dietro è stata posizionata una luce e il fondo della scena (bianco).

Viso La parte rosa del viso è composta da quattro parti ognuna generata dall'extruding di due curve. Si è giocato sulla parametrizzazione delle curve per far si che la superfice non uscisse dai limiti indicati dalle curve. La superfice è poi stata ritoccata a mano con xcsurf versione 3 per evitare problemi che portavano alla non renderizzazione delle superfici stesse.
Mantello La parte blue del mantello è anche'essa generata dall'extruding di curve. Si possono notare parti più scure in cui le superfici si vanno a sovrapporre.
Occhi I quattro pseudo-triangolini che formano la cornea sono ottenuti facendo estruding della curva di bordo verso un ponto centrale.
Le pupille sono delle superfici circolari formate da una matrice di control point 3x3 il cui bordo è descrive circonferenza cerchio e il CP centrale è il centro del cerchio.
L'iride è formato per estruding della curva delimitante la cornea e della curva di bordo della pupilla.
Lo sfondo; ora come ora è ottenuto non mettendo la superfice e sfruttando il colore di sfondo dell'intera scena.

Malfunzionamenti notati