Informatica Grafica I Materiali avanzati Riflessioni e trasparenze Molti degli oggetti modellabili sono costituiti da superfici trasparenti o riflettenti. I materiali Raytrace permettono di impostare il livello di trasparenza e di riflessione degli oggetti. Con questi parametri e' possibile creare finestre, lenti e specchi. Marco Gribaudo [email protected] Raytracing Il raytracing e' una differente tecnica di rendering, alternativa rispetto a quella standard. Raytracing Il raytracing cerca di seguire a ritroso il percorso fatto da un raggio di luce che, partendo da una fonte luminosa, raggiunge l'occhio di un osservatore. E' in grado di tener conto di luci, ombre, trasparenze e riflessioni. Raytracing L'algoritmo considera uno alla volta i pixel dell'immagine che sta generando, e traccia un raggio che unisce questi alla posizione dell'oservatore. Raytracing Determina quindi l'intersezione con tutti gli oggetti e seleziona l'oggetto piu' vicino. Raytracing Per calcolare il colore del pixel, traccia un nuovo raggio che congiunge il punto di intersezione con le luci presenti nella scena. Raytracing Altrimenti, se il raggio raggiunge la luce, vengono calcolati i termini di luce diffusa e speculare, utilizzando lo shader associato al materiale. Raytracing Il secondo viene invece utilizzato per implementare le trasparenze. Esso tiene conto dell'indice di rifrazione dell'oggetto e della trasparenza del materiale. Raytracing Se il raggio viene bloccato da qualche altro oggetto, allora la luce coinvolta non viene considerata (e' un punto in ombra rispetto all'altro oggetto). Raytracing Da ogni punto possono partire altri due raggi. Uno serve a generare le immagini riflesse e segue la direzione della riflessione speculare... Raytracing Per ciascuno dei due raggi il procedimento viene ripetuto in modo da considerare riflessioni e trasparenze multiple. Raytracing Il raytracing e' un algoritmo piuttosto semplice ma capace di produrre immagini estremamente realistiche. Riflessioni e trasparenze In 3D studio il raytrace si imposta selezionando "raytrace" quando si crea un nuovo materiale. Il raddoppiare ad ogni riflessione il numero dei raggi tracciati rende l'algoritmo poco efficiente e talvolta troppo lungo da calcolare. Riflessioni e trasparenze Riflessioni e trasparenze Per rendere trasparente un oggetto, ad esempio... ... e' sufficiente selezionare un materiale raytrace ed impostare la sua trasparenza ad un valore maggiore di zero. Riflessioni e trasparenze Riflessioni e trasparenze Per rendere ancora piu' realistica la trasparenza quando l'oggetto presenta delle parti curve... ... e' possibile impostare l'indice di rifrazione del materiale ad un valore diverso da 1. Riflessioni e trasparenze Riflessioni e trasparenze In questo modo si possono creare facilmente effetti "lente". Per ottenere invece una riflessione speculare... Riflessioni e trasparenze Riflessioni e trasparenze ... e' sufficente impostare ad un valore maggiore di zero il parametro di riflessione. Cosi' facendo si possono trasformare pareti piane in specchi. Bump map Le texture possono avere anche utilizzi secondari, oltre a quello classico di applicare un'immagine sulla superfice di un oggetto. Uno di questi utilizzi consiste nel determinare "la rugosita'" degli oggetti. In questo caso si parla di 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. Bump map In questo modo si possono rendere piu' realistiche le superfici degli oggetti: la colorazione cambia in funzione dell'angolo di incidenza della luce. Bump map Le mappe di trasparenza 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. Nelle normali immagini bitmap, le trasparenze vengono implementate attraverso uno speciale canale, detto canale Alpha. In un materiale, e' possibile utilizzare una tecnica simile per definire eventuali "buchi" presenti su una superfice attraverso una texture. Possono essere quindi solamente impiegate per aggiungere piccoli dettagli sulle superfici e non grandi variazioni di profondita'. Puo' essere utile per definire oggetti piatti con contorni molto frastagliati, come foglie od alberi in lontananza. Le mappe di trasparenza Le mappe di trasparenza In questo caso e' necessario avere una texture bicolore, dove il colore bianco viene impiegato per definire dove e' presente la superfice dell'oggetto, ed il nero dove e' assente. Utilizzando tale texture come mappa di trasparenza... Le mappe di trasparenza ... si puo' "ritagliare" il contorno di un oggetto. Per vedere il risultato, e' pero' necessario effettuare il rendering dell'immagine. Le mappe di ambiente Abbiamo visto in precedenza come creare superfici riflettenti utilizzando la tecnica del Raytrace. A volte non c'e' bisogno di avere il calcolo esatto delle riflessioni o rifrazioni, ma e' sufficiente "dare l'impressione" che esse siano presenti. Le mappe di ambiente Le mappe di ambiente, sono delle immagini che "approssimano" le riflessioni che si avrebbero nel luogo in cui l'oggetto e' situtato... Le mappe di ambiente In tantissime occasioni, esse sono in grado di dare risultati estremamente realistici, senza appesantire troppo il rendering della scena. Le mappe di ambiente Esse vengono utilizzate per calcolare le riflessioni e le rifrazioni in oggetti con materiali non raytrace. Il "cell shading" In alcuni casi, si vuole utilizzare un programma di grafica 3D per realizzare immagini simili a quelle dei cartoni animati tradizionali. In questo caso si parla si Cell shading. Il "cell shading" 3D studio, permette di realizzare immagini in cell shading con i materiali Ink'n paint. Il "cell shading" Il numero di "sfumature" diverse in cui esso puo' essere suddiviso... Il "cell shading" Lo spessore ed il colore dei bordi delle immagini generate. Il "cell shading" In questo caso si puo' scegliere il colore dell'oggetto... Il "cell shading" La presenza, la larghezza ed il colore dei punti di luce... Il "cell shading" Il risultato finale e' una immagine in stile cartone animato. I materiali multi-strato Molti materiali sono costituiti da strati semitrasparenti che si combinano per dare origine al risultato finale. I materiali multi-strato I materiali composti si selezionano in alternativa ai materiali standard. Per simulare questi comportamenti, 3D studio mette a disposizione i materiali compositi. I materiali multi-strato Essi sono costituiti da numerose posizioni in cui si possono inserire i materiali secondari da sovrapporre. I materiali elencati nelle posizioni di indice superiore sono quelli situati "piu' in alto" nella stratificazione. I materiali multi-strato Con questa tecnica si puo' ad esempio sovrapporre ad un materiale di tipo gesso... I materiali multi-strato Ad ogni strato si puo' assegnare un livello di trasparenza, grazie al quale far filtrare i materiali sottostanti. I materiali multi-strato Una nuvola opaca... I materiali multi-strato Librerie di materiali Per creare l'effetto di un materiale sporcato dal tempo. Le definizioni delle proprieta' dei materiali sono spesso riutilizzabili in diversi progetti. Per questo i materiali vengono generalmente raccolti in apposite librerie. Librerie di materiali Una libreria contiene numerosi materiali, ciascuno caratterizzato dai suoi parametri e dalle texture ad esso associate. Librerie di materiali L'utente si limita quindi a modificare alcuni parametri (come ad esempio il colore) per adattare un materiale alle varie esigenze. Librerie di materiali L'identificazione dei materiali in libreria puo' essere facilitata visualizzando alcune immagini campione.