Informatica Grafica 2003 Le texture Per rendere realistici gli oggetti modellati occorre definire accuratamente l'aspetto delle loro superfici. Il modo piu' semplice consiste nel sovrapporre immagini alle superfici. Queste immagini prendono il nome di texture o mappe. Le texture Esistono due tipi fondamentali di texture: Le texture 2D Le texture 3D Le texture Le texture Le texture 2D definiscono solamente i colori delle superfici degli oggetti. Le texture 3D definiscono invece i colori dell'intero spazio occupato dall'oggetto. Le texture Le texture 2D si dividono a loro volta in: Bitmap Texture procedurali Le texture possono essere assegnate al posto di qualsiasi "colore" associato al materiale. Le texture In questo caso il colore dell'oggetto varia in base all'immagine specificata dalla texture. Le texture di tipo Bitmap Le texture Generalmente le texture vengono applicate al colore della luce diffusa, essendo quest'ultimo cio' che maggiormente influenza "il colore" di una superficie. Le texture di tipo Bitmap Il modo piu' semplice per fare in modo che una superfice sembri reale consiste nel copiare dalla realta'. Le texture di tipo bitmap permettono di applicare immagini (di tipo bitmap) sulla superfice di un oggetto. Per realizzare un muro... Le texture di tipo Bitmap ... si puo' incominciare fotografando un muro ed acquisendo l'immagine tramite scanner o fotocamera digitale. Le texture di tipo Bitmap Quindi si ritaglia un rettangolo che contenga un "pattern" ricavato dal muro... Le texture di tipo Bitmap ... e lo si applica come texture sulla luce diffusa di un materiale. Le texture di tipo Bitmap Il meccanismo delle texture di tipo bitmap funziona bene per definire la maggior parte dei "materiali reali": marmo, legno, mattoni, piastrelle, pietre, pannellature, tessuti... Tante volte vengono adoperate anche per aggiungere dettagli quali scritte, bandiere, tappeti, sporcature... Le texture procedurali Le texture di tipo Bitmap Applicando tale materiale ad un parallelepipedo correttamente illuminato si ottiene un muro sufficientemente realistico. Le texture procedurali Le texture procedurali determinano il colore dei punti di una superficie attraverso opportuni algoritmi matematici. Vengono utilizzate per introdurre gradienti, frattali o simulare superfici speciali quali legno, marmo, liquidi... Le texture procedurali Le texture in grafica 3D corrispondono ai riempimenti in grafica 2D. Le texture procedurali in grafica 3D godono degli stessi vantaggi e degli stessi limiti dei riempimenti procedurali in grafica 2D: sono scalabili, mai ripetitivi e configurabili, ma leggermente meno realistici delle bitmap e meno efficienti da applicare. Un gradiente crea un'immagine che sfuma in modo lineare o radiale tra due o piu' colori. Le texture procedurali Le texture procedurali Una scacchiera alterna quadratini di due colori distinti. Uno swirl mischia due colori in un vortice. Coordinate di mappatura Coordinate di mappatura Per ottenere effetti migliori occorre allineare correttamente le texture agli oggetti. Le texture vengono disegnate sugli oggetti utilizzando un opportuno sistema di coordinate detto coordinate di mappatura (coordinate UV). Variando questo sistema si puo' allineare una texture ad un oggetto. Coordinate di mappatura In coordinate planari la texture viene immaginata disposta su di un piano e proiettata linearmente nello spazio. Esistono diversi tipi di coordinate di mappatura. Le principali sono: Coordinate planari Coordinate scatola Coordinate cilindriche Coordinate sferiche Coordinate faccia Coordinate di mappatura E' possibile cambiare l'orientamento del piano per angolare la texture. Coordinate di mappatura In coordinate scatola la texture viene immaginata come giacente su un cubo. Coordinate di mappatura In coordinate cilindriche la texture viene arrotolata attorno ad un cilindro prima di essere mappata sull'oggetto. Coordinate di mappatura In coordinate sferiche la texture viene avvolta su di una sfera. Coordinate di mappatura Anche in questo caso e' possibile ruotare e modificare le dimensioni del cubo per orientare la texture. Coordinate di mappatura Il cilindro puo' essere ruotato nello spazio in modo da avvolgere in modi differenti l'oggetto. Coordinate di mappatura Orientando la sfera si puo' cambiare la proiezione della texture. Coordinate di mappatura Texture 3D Le texture 3D definiscono i colori dell'intero spazio occupato da un oggetto. Non possono essere acquisite dal mondo reale cosi' facilmente come le texture 2D. In coordinate faccia la texture si allinea a ciascuna faccia che compone l'oggetto. Texture 3D Il materiale cellulare suddivide lo spazio in tante piccole aree dello stesso colore. Le aree possono essere sferiche... Texture 3D Il materiale marmo crea delle superfici venate. Notare come le vene continuino "dentro" l'oggetto. Per questo motivo le texture 3D sono solamente procedurali. Texture 3D ... o poliedriche. E' utile per creare superfici come sabbia, ghiaia, etc... Texture 3D Il materiale rumore origina un distrubo estremamente utile per introdurre sporcature. Texture 3D Il materiale pianeta definisce aree di differenti colorazioni, utilizzabili per creare superfici simili a quella terrestre. Texture 3D Il materiale acqua crea delle leggere ondulazioni, utilizzabili per modellare superfici di liquidi. Riflessioni e trasparenze Texture 3D Il materiale fumo suddivide lo spazio in nuvole di colore differente. Utilizzabile in combinazione con le trasparenze per creare ambienti fumosi. Texture 3D Il materiale legno crea delle venature "a lamine" simili a quelle presenti nelle assi di legno. Riflessioni e trasparenze Molti degli oggetti modellabili sono costituiti da superfici trasparenti o riflettenti. I programmi di grafica permettono di impostare il livello di trasparenza e di riflessione dei vari materiali. Con questi parametri e' possibile creare finestre, lenti e specchi. Per rendere trasparente un oggetto... Riflessioni e trasparenze ... e sufficiente impostare la sua trasparenza ad un valore maggiore di zero. Riflessioni e trasparenze ... alcuni programmi permettono di impostare l'indice di rifrazione del materiale stesso. Riflessioni e trasparenze Per ottenere invece una riflessione speculare... Riflessioni e trasparenze Per rendere ancora piu' realistica la trasparenza... Riflessioni e trasparenze In questo modo si possono creare facilmente effetti "lente". Riflessioni e trasparenze ... e' sufficente impostare ad un valore maggiore di zero il parametro di riflessione. Riflessioni e trasparenze Bump map Oltre che a determinare i colori delle superfici degli oggetti, le texture possono essere utilizzate per determinare trasparenze e riflessioni. Possono essere anche utilizzate per determinare "la rugosita'" degli oggetti. Cosi' facendo si possono trasformare pareti piane in specchi. In questo caso si parla di bump map. Bump map Bump map In assenza di bump map le superfici sembrano piatte. Bump map Una bump map produce un rilievo sulla figura pari alla luminosita' del pixel presente sulla texutre. Materiali animati I programmi di grafica 3D vengono spesso utilizzati per realizzare animazioni piuttosto che immagini statiche. In questo modo si possono rendere piu' realistiche le superfici degli oggetti: la colorazione cambia in funzione dell'angolo di incidenza della luce. In questo caso puo' essere necessario che le superfici degli oggetti cambino col procedere dell'animazione. Materiali animati Materiali animati Le texture di tipo bitmap possono essere importate da filmati oltre che da immagini statiche. In questo modo l'immagine proiettata sulle superfici degli oggetti cambia associando ad ogni fotogramma del filmato generato un differente fotogramma della texture impiegata. Materiali animati Le texture procedurali possono dipendere da parametri che ne definiscono i cambiamenti nel tempo. Si possono quindi creare nuvole spostate dal vento, vortici mossi dalla corrente, ecc... Librerie di materiali Una libreria contiene numerosi materiali, ciascuno caratterizzato dai suoi parametri e dalle texture ad esso associate. E' generalmente possibile controllare il filmato decidendo il fotogramma iniziale ed il rapporto tra la velocita' del filmato importato e di quello generato. Librerie di materiali Le definizioni delle proprieta' dei materiali sono spesso riutilizzabili in diversi progetti. Per questo i vari materiali vengono generalmente raccolti in apposite librerie. Librerie di materiali L'identificazione dei materiali in libreria è facilitata dalla presenza di immagini campione. Librerie di materiali Luci speciali Le texture viste fino ad ora possono anche essere applicate alle luci. Una luce a cui e' applicata una texture proietta l'immagine associata nello spazio. L'utente si limita quindi a modificare alcuni parametri (come ad esempio il colore) per adattare un materiale alle varie esigenze. Luci speciali Una volta inserita una luce di tipo spot o diretta... Luci speciali Luci speciali ... le si associa una texture. Le ombre Per rendere le immagini realistiche occorre considerare anche le ombre proiettate dagli oggetti. Il calcolo delle ombre non e' facile: in mancanza di specifica richiesta da parte dell'utente viene generalmente omesso. La luce proietta quindi l'immagine contenuta nella texture associata. Le ombre Ad ogni oggetto si puo' associare la possibilita' di proiettare... Le ombre Le ombre ... e di ricevere ombre. Le ombre Esistono due modi in cui le ombre possono essere realizzate: Le mappe d'ombra Il raytracing Anche le luci devono essere impostate per generare le ombre. Le ombre Con le mappe d'ombra il programma calcola prima le ombre e poi le applica sugli oggetti come se fossero texture. Le ombre Nel raytracing le ombre vengono calcolate mentre viene renderizzata la scena. Le ombre Le mappe d'ombra sono piu' veloci da gestire ma sono meno precise (possono creare errori, specialmente quando vi sono piu' luci che incidono sopra un oggetto). Il raytracing produce risultati migliori ma richiede un notevole incremento nei tempi di calcoli che puo' rendere il suo uso proibitivo.