XCMODEL tutorial: modellare una barca da regata.

Progetto del corso di Metodi numerici per la grafica (MNG) gennaio 2000 realizzato da Paolo Ottana'.

Step 1: modellare una barca da regata.

Data la buona flessibilita' del software XCMODEL la modellazione di un solido come una barca da regata non presenta particolari difficolta', permettendo di ottenere risultati visivamente molto soddisfacenti e suggestivi. Lo scafo presenta una forma geometrica solida ben definita, le cui superfici arrotondate e molto dolci a causa della loro idrodinamicita' si prestano bene alla modellazione con NURBS. La parte delle vele invece e' piu' irregolare e lascia maggior spazio all'improvvisazione.

Step 2: una vera barca da regata.

Dato che il progetto consiste nel riprodurre un oggetto reale, risulteranno molto utili durante le successive fasi, alcune immagini di vere barche da regata. Piu' che per il design, che effettivamente puo' variare in maniera trasparente a seconda dei gusti del modellatore, le immagini di esempio saranno utili per la determinazione delle effettive proprorzioni di ogni parte del modello rispetto alle altre. In questo modo il risultato finale raggiungera' un livello accettabile di realismo.

Step 3: progettazione Logica.

Vista la complessita' geometrica elevata di ogni solido reale, e' necessario scegliere quali parti di una barca riprodurre effettivamente e con quale grado di dettaglio. La scelta e' ricaduta certamente sullo scafo e sulla sua ricopertura superirore, sull'albero maestro, un paio di cime, su un paio di vele e sul blocco del timone. Questi elementi sono sufficienti per rendere abbastanza realistico il modello, senza esagerare con la complessita' di realizzazione. Si e' scelto di trascurare particolari come balaustre, mulinelli, oblo' ed altri dettagli ritenuti superflui. Occorre inoltre un ambiente in cui immergere il modello della barca. Per simulare un paesaggio di mare aperto si e' deciso di utilizzare un semplice piano (per il mare) ed un emisfero (per il cielo), in piu' verra' utilizzata una superficie piana di forma irregolare per simulare la scia della barca.
A questo punto puo' essere molto utile realizzare uno schizzo fatto a mano per visualizzare le varie superfici che si andranno a modellare. La prima superficie da prendere in considerazione e' senz'altro lo scafo. La tecnica piu' adatta a nostra disposizione per rendere questo tipo di solido e' senz'altro quella di Skinning, quindi, ancora sul disegno cartaceo, occorre individuare un certo numero di sezioni (7 piu' due punti degeneri sono sufficienti) che poi modelleremo attraverso xccurv.
Sembra poi naturale modellare con la stessa tecnica di skinning anche la copertura superiore, quindi, anche in questo caso, occorre individuare lo stesso numero di sezioni facendo attenzione che combacino con quelle dello scafo. Rimangono l'albero e le vele. Il primo non porta grosse difficolta' data la sua forma del tutto simile ad un cilindro, mentre per le seconde, visto che il loro aspetto e' reso dal vento abbasstanza irregolare, si puo' realizzarle direttamente in xcsurf creandole come superfici inserite by mouse. Per il timone si utilizzeranno forme geometriche regolari come cilindri, cubi, sfere e toroidi, che quindi non presentano alcuna difficolta' di gestione.

Step 4: le curve 2D.

Una volta passati a xccurv possiamo iniziare a modellare le varie sezioni per lo scafo e la copertura. E' molto utile attivare le opzioni di griglia, impostata a 2x, e della visualizzazione degli assi, che permettono di disegnare sezioni simmetriche e ben proporzionate tra loro. Per disegnare le NURBS, ci e' sufficiente impostare il grado delle stesse a 3.
E' consigliabile disegnare le curve a due a due (una per lo scafo ed una per la parte superiore dell'imbarcazione), in modo da essere sicuri che le varie sezioni combacino in modo perfetto. Una volta ottenuto un profilo soddisfacente, occorre salvare le due serie di curve (una per la parte superiore ed una per quella inferiore) in ordine crescente. Il raccordo tra la parte superiore e quella inferiore di ogni sezione puo' essere volutamente lasciato solo in valore, in modo da creare l'effetto visivo di uno spigolo. Bisogna avere cura di utilizzare sempre lo stesso numero di CP attraverso tutte le sezioni. Un modo semplice per farlo e' quello di spostare di volta in volta i CP e salvarli poi con un nome differente.
A questo punto occorre disegnare anche due elissoidi e un relativo punto degenere per creare l'albero della barca (anch'esso per skinning) ed anche un piccolo cerchio per la modellazione del timone.

Step 5: assemblaggio curve e skinnig delle varie superfici.

Una volta create le curve possiamo passare al programma xcsurf. Per prima cosa occorre caricare tutte le sezioni e disporle a valori di x costanti crescenti di un fattore arbitrario. Dopo una prima prova di skinning per valutare l'effetto visivo, lo scafo e la sua copertura risulteranno alquanto irreali e sproporzionati. E' a questo punto che torneranno utili i riferimenti a immagini reali che permetteranno di valutare piu' in dettaglio le proporzioni da adottare. Grazie ad xcsurf ci e' possibile avvicinare o allontanare le sezioni una ad una, per poi effettuare di tanto in tanto una prova di skinning per valutare il risultato. Dopo alcuni tentativi si riescono sicuramente ad ottenere delle superfici convincenti.

Per l'albero e' tutto piu' agevole data l'elevata semplicita' della superficie. Una volta creato l'albero maestro, e' necessario copiarlo, riscalarlo e ruotarlo per due volte per ottenere i supporti delle vele. Il blocco timone e' composto da una base (creata da un cubo opportunamente scalato e a cui sono stati spostati due CP impostando i valori da tastiera), un perno (formato da due semplici cilindri uniti da una sfera) e il timone vero e proprio (formato da un toroide di sezione molto piccola che si puo' creare per rivoluzione a partire da un cerchio). Per il cielo e il mare tornano utili due usual surfaces: una sfera ed un piano. La sfera puo' essere trimmata per ottenerne solo l'emisfero superiore. Una volta create queste due superfici si possono addirittura scalare e traslare, affinche' risultino proporzionate rispetto allo scafo.

Step 6: creazione delle superfici by mouse.

Si passa ora alla creazione delle vele e della scia della barca. Per le vele e' sufficiente creare col mouse due superfici simili di forma piu' o meno triangolare, impostando il grado in entrambe le direzioni a 2. La bombatura (dovuta al vento) puo' essere facilmente simulata attraverso l'inserimento di quote opportune. Le vele una volta create, devono essere scalate e traslate una ad una rispetto all'albero.
Per la scia invece occorre creare, sempre col mouse, una superficie irregolare di forma oblunga lasciando tutti i CP alla stessa quota e impostando il grado in u e v a 2. Poi la si trasla esattamente sotto lo scafo della barca alla stessa quota del mare. Per le cime basta creare una superficie piana composta da soli 4 CP (oppure un cilindro lungo e sottile) e poi spostare i singoli CP da tastiera in modo che una estremita' combaci con lo scafo e l'altra con l'albero maestro.

Step 7: creazione del modello.

Le varie superfici ora, devono essere riunite in un unico file modello. In pratica occorre creare 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 verra' regolato in seguito. Fatto questo si puo' passare alla regolazione fine dei parametri della scena. Per prima cosa devono essere regolate le proporzioni delle superfici stesse in modo piu' preciso. Occorre poi creare alcune luci e impostare la luce d'ambiente secondo le condizioni atmosferiche che si intendono simulare. Per esempio in una giornata nuvolosa si puo' simulare il sole con una point light molto tenue e di colore grigio pallido, aumentare un po' il fogging per simulare la foschia ed aumentare il parametro di ambient light riflessa dalle superfici attenuando le riflessioni speculari. Dopo alcune prove per regolare i vari parametri (quali colore, trasparenze, riflessione degli attributi) si possono assegnare textures di proiezione alle varie superfici in modo da renderle piu' realistiche . Dopo svariate prove per regolare la scala e la traslazione in modo da ottenere proiezioni corrette avrete finalmente ottenuto il risultato finale. In questa fase puo' essere necessario splittare il modello della chiglia in una parte sinistra ed una destra, in modo da poter applicare due texture di proiezione differenti per ogni lato. Questa tecnica e' utile per evitare che una eventuale scritta presente sulla texture risulti corretta da un lato ma invertita specularmente dall'altro.

Step 8: rendering.

Le principali impostazioni di rendering scelte sono state:

-) Light model: Whitted.
-) Intersecator: Tothspeed.
-) Ray depth level: 4.

Ecco alcune immagini di esempio:(click su un'immagine per la versione full-size!)


Download modello

E' possibile effettuare il download del seguente file contenente il modello realizzato:

ottanabarca.tgz  (scompattare con il comando: tar zxvf ottana_barca.tgz)



Paolo Ottana' gennaio 2000.

Per informazioni su questo tutorial scrivete a Paolo.