Tuesday, August 19, 2008

Decisamente Blender!

In questi giorni ho voluto studiare per capire quale fosse il tool di modellazione più congegnale ai miei scopi, specie dopo i problemi relativi alle normali di cui vi ho parlato prima di Ferragosto.
Ho provato un pò di tutto, anche per capire cosa offre il mercato freeware.
Val la pena citare un progetto che ha scoperto mia moglie. Si chiama Art Of Illusion, è scritto completamente in java, ed è davvero meritevole. Ha persino un motore di ray tracing integrato con tanto di calcolo dell'illuminazione globale. Lo metto da parte, e non escludo che possa tornarmi utile in futuro.
In ogni caso sono arrivato a darmi una risposta: Blender fa assolutamente al caso mio, è un prodotto eccezionale, in grado di competere (e credo anche sconfiggere) molti software commerciali che costano migliaia di euro. Basta imparare ad usarlo.
Il problema delle normali l'ho risolto grazie ad un apposito modificatore che non conoscevo.
E ho scoperto le meraviglie dell'editor UV!

Val la pena che ne parli un pò, può tornar utile a chi magari ha deciso di modellare mesh per videogiochi (magari il mio, perche' no? :P )

Per rendere decentemente un oggetto 3D sono molto importanti le texture, ovvero le immagini che vengono proiettate sopra l'oggetto tridimensionale. Servono a darci profondità e credibilità, servono a rendere una sfera giove anziche' la terra, eccetera.

La sfida grossa sta nella scelta delle texture giuste e nel modo in cui applicarle all'oggetto 3D.
Per oggetti banali come cubo, sfera, cilindro, esistono delle formule matematiche che fanno il lavoro di "avvolgimento" dell'immagine rettangolare attorno alla mesh, ed è questo il sistema che ho usato per disegnare i pianeti.
Quando però il modello inizia ad avere un aspetto piuttosto complesso l'approccio matematico diventa improponibile. Fino a ieri usavo quindi l'approssimazione di considerare ad esempio la stazione spaaziale come un cubo. Ottenendo discreti risultati ma che non mi davano alcuna possibilità di poter aggiungere dettagli in una posizione da me scelta. Solo la trama ripetuta all'infinito, ad avvolgere l'oggetto.
Con Blender la soluzione diventa semplice, quasi divertente.
In sostanza si prende l'oggetto, e si finge che sia un pelouche (!)
Di questo pelouche si sceglono quali sono le cuciture che uniscono i vari pezzi di stoffa. La libertà è massima, quindi conviene sceglierle in zone dell'oggetto che sono poco visibili (esattamente come avviene nei pelouche).
Una volta definite le cuciture, con un semplice comando Blender provvederà a "tagliare" il nostro pelouche lungo le cuciture e ad appiattirlo sopra un piano.
Otteniamo quindi un'immagine bidimensionale che è possibile quindi dipingere con uno dei tantissimi programmi (PhotoShop, Paint Shop Pro, Gimp, ecc..). Una volta dipinta l'immagine piatta, Blender non farà altro che "ricucire" il nostro oggetto lungo le cuciture, riottenendo quindi la nostra mesh tridimensionale con le texture desiderate.

Utilizzando questa tecnica ad esempio son riuscito a scrivere con ottima precisione il nome "Tau Ceti" sotto il portellone di ingresso della stazione, e son riuscito inoltre ad aggiungere alla trama alcuni punti scuriti, altri schiariti, per renderla meno "artificiale" ma più realistica.
Purtroppo non sono un'artista e non so fare miracoli, però almeno per la stazione spaziale sto arrivando ad un risultato che considero quasi definitivo.

Ecco come su blender la stazione spaziale è stata ritagliata.
A destra potete vedere i vari "pezzi" risultati dalla procedura di appiattimento, con sotto le corrispondenti texture aggiunte con Paint Shop Pro (clickate sull'immagine se volete vederla più grande):


Ed ecco come appare il risultato finale all'interno del gioco (notate la scritta e i punti un po' scoloriti messi in maniera casuale):

No comments: