
Ieri mattina mi sono alzato con tanta voglia di fare… fortunatamente poi è andata scremando…
Quello che volevo fare era un prototipo di posizionamento manichino, un pezzo del programma di paint che ho in mente, in cui renderizzato un manichino (tipo quelli di legno per artisti) e poi col mouse selezioni gli arti e li orienti come più ti piace. L’idea sarebbe questa: click semplice cambi selezione, ruotando tra tutte le possibili in quel punto, click e trascina decidi la direzione dell’attuale arto, e rotellina ruoti più o menol’arto verso la camera. A parole sembra bello, ed è per questo che volevo fare un prototipo.
Come al solito mi sono perso in altre cose, ad esempio ho cominciato col cercare disegni del manichino, una volta trovate vista frontale e laterale, ho cominciato a modellare, dopo un po’ che modellavo mi sono reso conto per l’ennesima volta che modellare non mi piace, mi diverto di più a scriptare i modelli
Mi sono ricordato che volevo comunque renderizzare il manichino in modo outline. Ora per renderizzare in outline qualcosa conosco 3 modi: Il primo che chiamo “metodo degli artisti” è alquanto semplice e consiste nel renderizzare il soggetto e poi ri-renderizzarlo completamente ingrandendolo o meglio ancora spostando tutti i suoi vertici lungo le loro normali e scambiando le facce rivolte verso la camera e quelle non rivolte (switchando il Backface culling), il bello di questo metodo è che può essere completamente impostato in fase di modellazione, creando una versione flippata e “ingrandita” del modello. Questo modo ha un difetto: esso crea un contorno esterno dell’oggetto, ma non crea le linee di demarcazione, ad esempio gli spigoli interni di un cubo non saranno evidenziati, esso è comunque il metodo che ho usato in “The Minis”. Il secondo modo fornisce risultati nettamente inferiori ma è possibile crearlo molto facilmente in pixel shader, visto che la maggior parte dei programmatori di disinteressa del primo fattore ed amano il secondo, lo chiamo “metodo dei programmatori”
Il terzo metodo, quello che ho implementato questo weekend, risolve il problema delle linee sempre visibili. Esso comporta una fase di pre-calcolo, dove per ogni edge della mesh controllo le facce accanto, se esse sono complanari, quest’edge non sarà mai visibile, altrimenti abbiamo 2 possibilità dipendenti dalle normali sui vertici degli edge o gli smoothing group dei due triangoli, se le normali sui vertici sono diverse allora questo edge è sempre visibile, se invece sono uguali allora quell’edge sarà visibile solo in caso di contorno quindi conservo le normali dei piani contenenti i due triangoli e visualizzo solo gli edge cui un triangolo è visibile e l’altro invisibile a causa del backface culling. E’ possibile scaricare l’eseguibile del lavoro di questo weekend.
E’ possibile trascinarci all’intero un file obj per farlo caricare, esso però deve essere triangolizzato e presentare le informazioni sulle normali. I comandi sono: click e trascina per ruotare il modello, click e trascina con SPAZIO per spostare la visuale e tasto destro per ri centrare il modello. De default carica un modello di Homer Simpons creato dal mio collega Giuliano Lo Bocchiaro. questo modello spiega anche perché Marge rimane con Homer dopo tutto questo tempo…
Come dicevo mi perdo in altre cose quando lavoro a casa, infatti per questo programma ho ricreato una mia vecchia classe molto utile, la “Log’n'Progress” una finestra con una casella di testo per il log e una progress bar per la percentuale. Il concetto è che una cosa può anche essere lenta, ma se si sapesse quello che succede e sopratutto se si sapesse quanto ancora ci vuole si aspetta più volentieri.
Magari il prossimo week-end faccio il poser del manichino
Perry
05/12/2008 at 21:51 Permalink
Sei un comico perry.