Tenendo presente che un algoritmo di ray-tracing produce
delle rese super-realistiche, tipicamente di interni, si chiede di
progettare un interno in cui collocare almeno un modellino di un veicolo
di terra, aria o acqua (esclusi veicoli spaziali e sommergibili) la cui modellazione
3D deve essere particolarmente curata nei dettagli.
La fase di modellazione venga realizzata facendo esclusivamente
uso degli strumenti introdotti nel corso e a disposizione in XCSurf;
se singoli oggetti sono composti da piu' superfici, queste vengano assemblate
nella fase di modellazione (in ambiente XCSurf).
Si realizzi poi lo scene-graph della scena 3D mediante libreria descriptor e
script C e si producano:
Il mezzo che ho scelto di rappresentare è il "Monster" prodotto dalla Ducati, il modello che negli anni novanta ha dato origine ad un nuovo segmento nel mercato motociclistico, ovvero le moto "naked", nude o scarenate. Di fatti tale moto è caratterizzata dalla mancanza della maggior parte degli elementi di carrozzeria, mantenendo solamente i componenti strettamente necessari e lasciando in vista il telaio e la meccanica.
Per la realizzazione in questione ho scelto di rappresentare la moto come un modellino in scala appoggiato su un tavolo insieme ad un casco e ad una foto di un Monster reale su strada. Considerata la complessità della meccanica, per l'elevata quantità di componenti e per la loro forma di cui non conosco i dettagli, ho scelto di abbozzare tale elemento della moto e di concentrarmi invece sugli aspetti che ne caratterizzano l'estetica. In particolare, per la realizzazione di alcuni dettagli che variano da modello a modello, ho fatto riferimento al Monster 695.
Le superfici più difficili da modellare sono state quelle ottenute dallo "skinning" di più curve, come ad esempio il serbatoio e la sella. Altre superfici, come il telaio, il manubrio e i collettori di scarico, sono state ottenute con la tecnica "tubolar": questa tecnica consentiva di realizzare facilmente la forma voluta, non mi risultava difficile replicare in XcCurv dei tracciati presi da delle foto, ma purtroppo in diversi casi, passando dalla curva 3D alla superficie, si perdevano le proporzioni, rendendo problematico l'assemblaggio. Altre superfici ancora sono state realizzate con la tecnica di rivoluzione, senza provocare particolari difficoltà.
Le ruote (che differiscono l'una dall'altra solo per un lieve fattore di scala) sono state realizzate in maggioranza per rivoluzione, precisamente per il battistrada, la spalla del copertone, e la circonferenza esterna del cerchione. Con skinning sono stati modellati i raggi (ispirati al modello S4R), mentre il mozzo è stato ottenuto dalla scala di due cilindri.
La forcella anteriore è composta da due steli alti (rivoluzione di una curva), due steli bassi (cilindro), e due elementi che uniscono gli steli paralleli ed il telaio (composti dall'unione di solidi semplici).
Il cruscotto è composto dagli indicatori a lancetta, ottenuti per rivoluzione, ed da un elemento che unisce i due indicatori ottenuto per estrusione.
Il manubrio è stato ottenuto realizzando prima una curva in due dimensioni in XcCurv, che rappresentava la pianta dall'alto, successivamente in XcSurf ho inserito le componenti Z ai punti di controllo, ed ho infine ottenuto il manubrio con la tecnica tubolar. Le manopole sono state ottenute dal trimming del manubrio opportunamente scalato.
Il fanale, composto da scatola, cromatura e vetro, è stato ottenuto interamente per rivoluzione.
L'impianto di scarico è stato realizzato con la tecnica di rivoluzione per quanto riguarda i terminali e con la tecnica tubolar per i due collettori.
La meccanica è stata realizzata con le tecniche di estrusione e skinning. In particolare si nota il blocco motore raffigurante i due cilindri a V unito alla scatola del cambio, dalla quale escono le protuberanze circolari ospitanti albero motore e di trasmissione. Altre superfici sono state realizzate con skinning per occupare lo spazio di diversi componenti come carburatore e batteria.
Il telaio è stato interamente realizzato con la tecnica tubolar, ad eccezione dell'elemento di congiunzione alla forcella anteriore, che è un semplice cilindro. La realizzazione del telaio ha richiesto particolare attenzione nelle proporzioni e nell'assemblaggio. Le curve sono state per lo più disegnate in 2D, in qualche caso ho provveduto a fornire la terza dimensione per alcuni punti.
In coda alla moto si trovano il parafango/spoiler, realizzato con lo skinning, e lo stop, l'etrusione di una semplice curva.
Uno dei pochi elementi di carrozzeria 'superflua' copre il telaio sotto la sella; è stato ottenuto dallo skinning di curve 3D.
La sella ed il serbatoio sono insieme al telaio degli elementi fortemente caratterizzanti la linea della moto, ma i primi due rispetto all'ultimo sono stati caratterizzati da una maggiore difficoltà nella ricerca della forma più fedele all'originale.
Il casco è stato realizzato in più passi: inizialmente è stata applicata la funzione revolution ad una curva 2D, ottentendo una sorta di sfera troncata. Successivamente si sono spostati alcuni control point della metà anteriore del casco, allungando la forma e spostando in basso la 'punta'. La parte posteriore, al contrario, ha subito una contrazione, con i suoi control point traslati verso il baricentro in senso longitudinale, e verso l'alto lungo l'asse delle Z. Nell'ultimo passo è stato inclinato il profilo laterale verso il retro e si sono alzati i control point di base in modo che risultassero paralleli al piano XY. Infine, dal trimming della superfice ottenuta sono state ricavate la visiera ed i tappi di plastica che coprono le cerniere della stessa visiera.
Il tavolo è stato realizzato componendo dei semplici solidi del tipo 'usual' opportunamente scalati e posizionati.
Attraverso la libreria descriptor ho posizionato i diversi oggetti nello spazio e ne ho specificato le caratteristiche di resa. In particolare ho definito:
Attraverso la set_projection_texture() sono state applicate le seguenti texture:
E' possibile scaricare i sorgenti qui.
Un malfunzionamento che ho riscontrato riguarda la funzione di trimming in XcSurf: una volta scelti i control point della superficie da trimmare il programma fornisce un'anteprima nella finestra "curve/surface" per dare la possibilità di modificare la selezione, ma in realtà la modifica non avrà effetto ed il trim riguarderà la selezione originale.