Informatica Grafica 2003 - Dipartimento di Informatica

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.