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