Effetti avanzati con le texture - Dipartimento di Informatica

Informatica Grafica
per le arti
Effetti avanzati
con le texture
Usi avanzati delle texture
La ricerca nella grafica 3D in tempo reale,
ha prodotto numerose tecniche che
sfruttano speciali texture per accelerare i
tempi di rendering.
3D studio supportamolte di queste
tecniche per ridurre i tempi di produzione
e migliorare la qualita' delle immagini
generate.
Marco Gribaudo
[email protected]
Usi avanzati delle texture
In questo corso vedremo le seguenti
tecniche:
Bump map
Il tentativo di riprodurre un muro con una texture che
rappresenti semplicemente un'immagine di mattoni,
produce risultati piuttosto "piatti".
Bump e Normal Map
Displacement Map
Alpha Map
Reflection/Refraction Map
Occlusion e Light Map
Bump map
Bump map
Tale difetto e' dovuto al fatto che la texture da
sola non e' in grado di riprodurre l'effetto della
differente profondita' tra i vari punti del muro (in
particolare tra i mattoni e la calce negli
interstizi).
Una bump map e' una speciale texture che produce
rilievi sulla figura pari alla luminosita' dei pixel presenti
sull'immagine.
Allo stesso tempo, la modellazione esplicita dei
singoli mattoni, porterebbe ad uno incremento
enorme nei tempi di modellazione e rendering.
Bump map
In 3D Studio,
le Bump map
si assegnano
nella apposita
casella della
sezione
Mappe di un
materiale
(Rugosita').
Bump map
La Bump map cambia la colorazione dell'oggetto in
funzione dell'angolo di incidenza della luce, simulando
un effetto di profondita'.
Bump map
Bump map
Le bump map non modificano la superfice
dell'oggetto, ma ricreano solamente
l'effetto di luce che si otterrebbe se la
supefice fosse effettivamente rialzata in
alcuni punti.
Negli ultimi anni, e' stata proposta una
estensione delle Bump map, chiamata Normal
map.
Possono essere quindi solamente
impiegate per aggiungere piccoli dettagli
sulle superfici e non grandi variazioni di
profondita'.
Le Normal map tengono conto non solo della
differenza di altezza, ma anche della curvatura
della superfice in ogni suo punto.
Sono quindi capaci di fornire risultati
decisamente migliori rispetto alle Bump.
Bump map
Bump map
Inoltre possono essere generate automaticamente a
partire da un modello ad alta risoluzione, permettendo
cosi' di trasferire parte dei dettagli su di una texture da
applicare ad un modello con meno poligoni.
Le Normal Map possono essere utilizzate nelle piu'
recenti versioni di 3D studio attraverso speciali texture
procedurali chiamate Normal Bump.
Displacement map
Displacement map
In alcuni casi si vuole modificare effettivamente
la geometria di una superfice in base ad una
immagine presente su di una texture.
Per poter utilizzare una Displacemente map, occorre
assegnare il modificatore Displace (Scostamento) ad
oggetti dotati di numerosi vertici.
Un esempio classico e' la codifica terreni
attraverso mappe di altezza.
In questo caso, le texture prendono il nome di
Displacement Map.
Displacement map
Displacement map
La texture contenente la mappa di altezza si inseisce
nelle proprieta' del materiale alla voce Displacement
(Scostamento).
Durante il rendering, le Displacement map modificano
la geometria dell'oggetto a cui sono associate,
producendo quindi effetti di qualita' piu' elevata, al
prezzo di un piu' alto numero di triangoli.
Le mappe di trasparenza
Le mappe di trasparenza
Nelle normali immagini bitmap, le trasparenze
vengono implementate attraverso uno speciale
canale, detto canale Alpha.
Le mappe di trasparenza (Alpha Map), vengono
implementate tramite texture bicolore, dove il colore
bianco viene impiegato per definire i punti in cui e'
presente la superfice dell'oggetto.
In un materiale, e' possibile adoperare una
tecnica simile per definire "buchi" presenti su
una superfice utilizzando una texture.
Puo' essere utile per modellare oggetti piatti
con contorni molto frastagliati, come foglie od
alberi in lontananza.
Le mappe di trasparenza
Le mappe di trasparenza
In 3D Studio, si impostano come texture associate
all'opacita' di un materiale.
Esse permettono di "ritagliare" il contorno di un
oggetto. Per vedere il risultato, e' pero' necessario
effettuare il rendering della scena.
Le mappe di ambiente
Abbiamo visto in precedenza come creare
superfici riflettenti utilizzando la tecnica
del Raytrace.
Le mappe di ambiente
Le mappe di ambiente, sono immagini che
"approssimano" le riflessioni o le rifrazioni che si
avrebbero nel luogo in cui l'oggetto e' situtato.
A volte non e' necessario il calcolo esatto
delle riflessioni o delle rifrazioni per
ottenere risultati realistici, ma e' sufficiente
"dare l'impressione" che esse siano
presenti.
Le mappe di ambiente
Esse vengono utilizzate per simulare le riflessioni e le
rifrazioni in oggetti con materiali non raytrace.
Le mappe di ambiente
Le mappe di riflessione, simulano la riflessione
speculare e ripropongono le immagini riflesse
dall'oggetto.
Le mappe di ambiente
Le mappe di rifrazione simulano invece la trasparenza
e rappresentano cio' che si vedrebbe attraverso
l'oggetto.
Le mappe di ambiente
Questo puo' essere eseguito in 3D Sudio utilizzando al
posto delle mappe di riflessione/rifrazione texture
procedurali di tipo reflect/refract.
Le mappe di ambiente
Normalmente le mappe di ambiente cubiche
sono utilizzate in modalita automatica.
In questo modo si possono simulare riflressioni
e rifrazioni classiche dei materiali raytrace,
senza dover utilizzare tale tecnologia
(riducendo quindi drasticamente i tempi di
rendering).
Le mappe di ambiente
Si possono avere effetti piu' realistici se si usano
mappe cubiche.
Le mappe di ambiente
Un vantaggio
addizionale per le
mappe di rifl./rifr.
cubiche e che esse
possono essere sia
specificate
dall'utente, che
calcolate
automaticamente dal
programma.
Le mappe di ambiente
L'approssimazione ottenuta utilizzando una mappa di
ambiente cubica automatica, sara' tanto piu' vicino al
raytracing quanto piu' l'oggetto sara' simile ad una
sfera.
Mappa cubica
Raytracing
Le mappe di occlusione
Come visto nelle precedenti lezioni, il calcolo
dell'illuminazione (specialmente di quella
indiretta), e' una delle piu' alte sorgenti di
complessita' durante il rendering.
Per ridurre i tempi di calcolo, specialmente nella
creazione di animazioni o applicazioni in tempo
reale, e' possibile precalcolare l'illuminazione,
salvarla su texture, ed utilizzare l'informazione
memorizata in quest'ultime per ridurre i tempi di
rendering nei successivi fotogrammi.
Le mappe di occlusione
Supponiamo di avere una scena in cui vi siano una
Skylight, ed una luce diretta.
Le mappe di occlusione
Si deve innanzi tutto
disabilitare la
creazione di
materiali permanenti,
e specificare la
cartella in cui le
texture verranno
salvate.
Le mappe di occlusione
Il meccanismo, pur producendo approsimazioni, risulta
particolarmente efficace per gli effetti luminosi che non
variano in funzione della posizione dell'osservatore
(luce circostante e riflessione lambertiana).
Si parla di Light Map, quando le texture vengono
utilizzate per memorizzare tutti i fenomeni luminosi.
Vengono invece chiamate Occlusion Map se le
texture sono utilizzate per memorizzare solamente i
fenomeni di occlusione (ad esempio causati da una
Skylight), responsabili dell'illuminazione circostante.
Le mappe di occlusione
Attraverso il comando Rendering -> Rendering su
texture, e' possibile precalcolare l'illuminazione globale
causata dalla Skylight e memorizzarla su texture.
Le mappe di occlusione
Si selezionano quindi gli oggetti presenti sulla scena, e
si aggiungono col pulsante Aggiungi. E consigliabile
aggiungere un oggetto alla volta, anche se e' possibile
considerare piu' elementi contemporaneamente.
Le mappe di occlusione
Si seleziona quindi quale fenomeno si vuole
precalcolare: in questo caso una mappa di
illuminazione.
Le mappe di occlusione
Avviando il
rendering, 3D
Studio crea
automaticamente
una mappa UV
per gli oggetti
selezionati, e
renderizza su di
essa
l'illuminazione
indiretta.
Le mappe di occlusione
A questo punto e' possibile eliminare dalla scena tutte
le luci indirette.
Le mappe di occlusione
Si specificano quindi le
dimensioni della texture
da creare, e si
deselezionano le voci
Ombre e Luce Diretta
On, per generare mappe
contenenti solo
l'illuminazione indiretta.
Le mappe di occlusione
Le texture generate, riportano l'illuminazione indiretta
che gli oggetti ricevono nella scena.
Le mappe di occlusione
Si selezionano i materiali relativi agli oggetti per cui
l'illuminazione e' stata precalcolata...
Le mappe di occlusione
E si assegna all'illuminazione propria dell'oggetto la
texture corrispondente.
Le mappe di occlusione
L'immagine quindi verra' renderizzata molto piu'
velocemente, e comunque presentera' effetti di luce
indiretta.
Solo diretta
Diretta + indiretta
Le mappe di occlusione
Attraverso tecniche di color correction in postproduzione (es. Photoshop), si potra' migliorare
l'immagine, rendendola piu' simile a quella originale.
Approx + Color Corr.
Light-tracing
Le mappe di occlusione
Per non confondere le mappe di illuminazione con le
normali texture, queste vengono assegnate su un
canale diverso. Occorre quindi variare
opportunamente il canale della mappa dell'immagine,
in modo che esso utilizzi le coordinate UV corrette.
Le mappe di occlusione
L'immagine finale sara' pero' di qualita' inferiore
rispetto a quella che si sarebbe ottenuta utilizzando il
calcolo preciso dell'illuminazione indiretta.
Approssimata
Light-tracing