Informatica Grafica per le arti Materiali avanzati Raytracing Molti degli oggetti modellabili sono costituiti da superfici trasparenti o riflettenti. I materiali Raytrace permettono di simulare con precisione l'effetto di trasparenza e di riflessione degli oggetti. Risultano quindi particolarmente indicati per modellare finestre, lenti e specchi. Marco Gribaudo [email protected] Raytracing Il raytracing e' una speciale tecnica di rendering, capace di considerare i fenomeni di riflessione totale di un materiale. 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. Per questo 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 quello 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 Raytracing Il raytracing e' un algoritmo piuttosto semplice ma capace di produrre immagini estremamente realistiche. Negli ultimi anni, sono l'algortimo e' stato ulteriormente esteso, rendendolo capace di considerare anche fenomeni di riflessione non totale, grazie a tecniche stocastiche (i.e. considerando un numero maggiore di raggi, indirizzati casualmente nello spazio). Il raddoppiare ad ogni riflessione il numero dei raggi tracciati rende l'algoritmo poco efficiente e talvolta troppo lungo da calcolare. Queste nuove tecniche premettono di riprodurre fenomeni luminosi ancora piu' avanzati come le riflessioni sfocate, le caustiche, la colorazione della luce rifratta e la messa a fuoco nella cinepresa, al prezzo di un ulteriore incremento nei tempi di rendering. Riflessioni e trasparenze Riflessioni e trasparenze In 3D studio il raytrace si imposta selezionando "raytrace" quando si crea un nuovo materiale. Anche per i materiali Raytrace e' possibile selezionare lo Shader, ed impostarne i relativi parametri. 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. Il "cell shading" In alcuni casi, si vuole utilizzare un programma di grafica 3D per realizzare immagini simili a quelle dei cartoni animati tradizionali. Il "cell shading" 3D studio, permette di realizzare immagini in cell shading con i materiali Ink'n paint. In questo caso si parla si Cell shading. 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 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" 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. Per simulare questi comportamenti, 3D studio mette a disposizione i materiali compositi. I materiali multi-strato I materiali compositi si selezionano in alternativa ai materiali standard. 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 Essi sono costituiti da numerose posizioni in cui si possono inserire i materiali da sovrapporre. I materiali elencati nelle posizioni di indice superiore sono quelli situati "piu' in alto" nella stratificazione. I materiali multi-strato Inoltre e' possibile specificare la modalita' in cui i vari strati vengono miscelati (A - additiva, S sottrattiva, M - moltiplicativa). I materiali multi-strato Con questa tecnica si puo' ad esempio sovrapporre ad un materiale di tipo gesso... I materiali multi-strato Una nuvola opaca... I materiali multi-strato Materiali per la Radiosity Per creare l'effetto di un materiale sporcato dal tempo. La tecnica di rendering della Radiosity, richiede parametri speciali, come ad esempio il coefficente di riflessione dell'energia. I normali materiali, non sono pero' dotati di questi particolari parametri. Il materiale Sostituzione Illuminazione Avanzata, permette di estendere un materiale, aggiungendovi i parametri necessari per la Radiosity. Materiali per la Radiosity Materiali per la Radiosity Si inizia selezionando il materiale a cui si vuole aggiungere i parametri per la Radiosity, e lo si cambia in Sostituzione Illuminazione Avanzata. Si risponde quindi di voler mantenere il vecchio materiale come materiale di base. Materiali per la Radiosity Materiali per la Radiosity Il coefficente di riflettanza, permette di ridurre la capacita' di un oggetto di riflettere la luce ricevuta. Il coefficente di luminanza, consente di utilizzare la luce propria di un oggetto per illuminare la scena. 1,0 0,0 0,01 Materiali doppia faccia Come visto nelle precedenti lezioni, il meccanismo del Back Face Culling, non visualizza le facce ritenute opposte all'osservatore. 1,0 Materiali doppia faccia Un materiale doppia faccia, permette di specificare altri due materiali: uno da utilizzare per il "fronte", e l'altro per il "retro". Il materiale doppia faccia, permette di disabilitare questo meccanismo, e di utilizzare due materiali distinti a seconda che la faccia sia interna od esterna. Materiali doppia faccia Durante il rendering, questo permette di visualizzare (eventualmente in un colore diverso) facce che normalmente verrebbero eliminate. Librerie di materiali Le definizioni delle proprieta' dei materiali sono spesso riutilizzabili in diversi progetti. A questo scopo, i materiali possono essere 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.