"Eh! Che cagnara!!! Meditando s'impara...", (NON) diceva Cimabue, nel carosello di Dom Bairo L'Uvamaro.
...Che io c'ho in testa tutti questi strani ricordi di citazionismo aneddotico spicciolo di quando non ero nemmeno ancora nato (che probabilmente me li hanno innestati alla "Recall", quando ero ancora Douglas "Doug" Quaid/Carl Hauser... :D ).
"Maledetto Cohaagen!!!".
...Oppure, molto più semplicemente, il piano di indottrinamento culturale delle masse messo in atto da "RAI Teche", con me sta funzionando molto meglio del previsto, avendomi ormai quasi del tutto trasformato in giovane-vecchio (...o vecchio-giovane? ;) ) con ricordi non suoi. :D
"WE, OPERAIO! Guarda che quel tubo lì è troppo inclinato!!! L'acqua non ci va mica, in salita...".
Ok. Mi faccio una pera con il "Gerovital" e sono subito da voi!!! :)
"Gerovital": per il "giovinotto" senile che guarda gli scavi come i vecchi!
Ben ritrovati amici!
Che dite?! Vogliamo incominciare a discutere dell'argomento del giorno, sapientemente introdotto da uno dei miei consueti "titoli fuorvianti che niente hanno a che fare con l'argomento del "post" che ho in mente di scrivere™"?! :)
Si?!
Allora sediamoci amorevolmente tutti in circolo, prendiamoci per mano e parliamo serenamente di riflessioni, illuminazione e... "normal map"! :D
Eh già, signori miei. Oggi si disquisisce proprio dei tre capisaldi che, insieme alla cosiddetta "diffuse map", costituiscono il fondamento di quella grafica texturizzata tridimensionale che da trent'anni a questa parte dà corpo e spessore ai nudi poligoni della nostra infanzia videoludica.
Che non erano nemmeno tanto male, a dirla tutta... :P
Ora, da qualche settimana a questa parte, il vostro anfitrione verde preferito ha incominciato ad investire il suo tempo libero nello studio autodidattico della vestizione dei poligoni a fini ludici (anche perché in passato, il Marte aveva solamente approcciato la dimensione artistica della questione, quando nei primi anni del nuovo millennio si cimentò con il "rendering" tridimensionale, grazie a "Blender"...).
Contenti? No?! Come "no"?! Ah... Preferivate leggere del Marte che medita con le gambe inestricabilmente intrecciate nella posizione del loto e con entrambe le rotule auspicabilmente lussate?
Sapete che c'è?! Il "blog" è mio, lo gestisco io e, se non vi va bene così, "Google" è la porta! C'è tanta roba più interessante la fuori, fidatevi... :D
Diversamente, per chi resta, la storia di oggi è più o meno questa...
Un po' di tempo fa vi ho accennato che la mia nuova droga cibernetica risponde al nome di "Oolite", vero?!
Ora, "Oolite" è un "videogame" funestato da un grandissimo difetto: ha una struttura pesantemente modulare e facilmente espandibile grazie ad "add-ons" scriptati. ...Ed il dramma di fondo è che tutte queste espansioni hanno una struttura non molto difficile da comprendere, anche per i profani della programmazione come me e voi!
Prendete le astronavi aggiuntive, tanto per fare un esempio terra-terra... Per dire, se vi saltasse l'uzzolo di aggiungere al gioco tutti gli "Eagle Long Range Fighters" di "frontieriana" memoria, scaricando il relativo pacchetto di espansione vi trovereste davanti ad una cartella con estensione ".OXP" a sua volta contenente una sotto-cartella con i modelli tridimensionali delle varie navi spaziali, una seconda cartella con le "textures" dei velivoli ed una terza ed ultima "directory" concepita per raccogliere tutti gli "scripts" che mettono insieme i componenti sfusi e fanno funzionare materialmente l'estensione nel contesto del gioco.
Tutto qui. Tutto molto facile. Tutto molto lineare...
Detto questo, secondo voi, dopo una scoperta del genere, quanto tempo trascorre prima che l'indole smanettona del Marte si attivi?! Esatto. Pochissimi giorni... Avere immagini e banalissimi "files" di testo non criptati a disposizione è un'esca troppo golosa! :)
Il Marte: una preda facile!
...E fu così che il buon Marte si armò di "The Gimp" e di santa pazienza, incominciando ad armeggiare con le immagini a sua disposizione.
Fase uno e primo dubbio: se prendo una "texture" tipo la "diffuse map" (ovvero la "pelle" di un modello tridimensionale) e ne raddoppio le dimensioni, il motore grafico del gioco la ritaglia sempre e comunque correttamente, per "vestire" il solido tridimensionale al quale è associata, oppure i riferimenti cartesiani vanno a ramengo e si incasina tutta la visuale?!
Risposta: non c'è problema, Marte! Vai, che è tutta discesa!!! :)
Quindi il Marte prende la "skin" del suo bel "Eagle Long Range Fighter MK1" e la ridisegna da zero, secondo i suoi gusti, in 1024*1024 (ovvero il doppio del formato originale della "texture").
Risultato: tanti bei dettagli in più! :)
Vi piace?!
Fase due: comprendere il funzionamento dell'"illumination map" (ovvero una "texture" secondaria che si occupa, come dice il nome, di illuminare e far brillare al buio determinate aree del nostro modello tridimensionale... Ché al primissimo approccio, l'avevo concepita in maniera sbagliata, trasformando l'astronave in una specie di lampadina spaziale che faceva molto ma molto "Luna Park"... ).
"VENGHINO SIORI, VENGHINO!!! Più gente entra, più bestie si vedono!!!". :D
Il grigio al 50% illumina al 50% la cabina di pilotaggio della navicella. :)
Fase tre: realizzare la "normal map", ovvero una specie di bassorilievo cianotico che è in grado di creare delle increspature fittizie sulla pelle del modello tridimensionale, illuminando oppure oscurando i "pixels" in base alla luce radente che spiove sul solido.
Si. Lo so... Detto così, sembra una cosa incasinatissima, ma in realtà c'è un comodissimo "plugin" di "The Gimp" che fa tutto da solo, con un paio di "clicks"... :D
È tutta azzurra?!
Fase quattro: disegnare la "specular map", ovvero lo schema colorimetrico delle riflessioni speculari che dardeggiano dalla superficie del modello quando questo è investito da una luce diretta.
Una zincatura verde-oro... ;)
A questo punto si copiano tutte le immagini nella cartella dell'espansione del gioco (andando a sostituire i "files" originali...) e si mette mano allo "script" che le carica, per sincerarsi che sia tutto in ordine...
Il risultato finale è questo qui...
Sono fiero come un padre!!! :D
Morale: una bella nave spaziale verdastra come il papà solca l'infinito l'universo "Oolitiano", in cerca di imperitura fama e gloria! :)
...E se nei prossimi giorni non dovessi dare segni di vita, sappiate che devo ancora ritexturizzare l'"Eagle MK2", il "3", il "4", l'"Imperial Trader" e l'"Imperial Courier"...
Dura la vita dei creativi!!! :D