Informatica Grafica per le arti Illuminazione avanzata Luci speciali E' possibile applicare una bitmap ad una luce. Una luce a cui e' applicata una bitmap proietta l'immagine associata nello spazio. Marco Gribaudo [email protected] Luci speciali Una volta inserita una luce di tipo spot o diretta... Luci speciali Si seleziona quindi "bitmap" nel tipo di immagine che si vuole proiettare. Luci speciali ... e' possibile associarle una bitmap dalla sua pagina delle proprieta' alla sezione "effetti avanzati". Luci speciali Infine si seleziona l'immagine che si vuole proiettare. Luci speciali La luce proietta quindi l'immagine contenuta nella bitmap associata. Luci speciali Per tutti i tipi di luce e' possibile impostare anche un decadimento, definire cioe' come la luce diminuisce nello spazio, man mano che ci si allontana dalla sorgente. Luci speciali Per luci direzionali e spot e' possibile indicare la forma del cono-cilindro (circolare o rettangolare). Nel caso di fasci rettangolari, e' anche possibile specificare il rapporto tra i due lati per definirne la forma. Luci speciali Se non si imposta nessun decadimento, l'intensita' luminosa rimane costante in tutto lo spazio. Il decadimento quadratico e' invece quello che si avrebbe utilizzando le leggi fisiche. Esso pero' tende a produrre immagini troppo scure. Il decadimento inverso e' invece un'approssimazione che si trova a meta' strada tra i due precedenti. Illuminazione avanzata Illuminazione avanzata Le tecniche di illuminazione viste fino ad ora (a parte la luce ambientale), servono unicamente a simulare l'illuminazione diretta e trascurano quella indiretta. 3D studio Max, a partire dalla versione 5, mette a disposizione 2 tecniche di illuminazione avanzata: Negli ultimi anni sono state inventate numerose tecniche per simulare l'illuminazione indiretta e realizzare immagini sempre piu' realistiche. Le piu' importanti sono la radiosity, il photon mapping, il final gather e l'image-based lighting. Light-tracing Radiosity Nelle versioni piu' recenti, 3D studio MAX ha integrato il motore di rendering Mental Ray, attraverso il quale e' possibile utilizzare anche le altre tecniche di illuminazione indiretta. Illuminazione avanzata Le tecniche di illuminazione avanzata si attivano dall'apposita voce del menu' di rendering, selezionandole dall'elenco a tendina. Illuminazione avanzata Per comprendere il funzionamento delle tecniche di illuminazione avanzata, bisogna prendere in considerazione anche il modo in cui gli oggetti riflettono la luce che li illumina. Di questo pero' ce ne occuperemo in modo piu' approfondito nelle prossime lezioni. Per ora accenneremo solo brevemente a come la direzione e la quantita' di luce riflessa dipenda dalla rugosita' di una superfice. Illuminazione avanzata Illuminazione avanzata In paritcolare, i raggi di luce che colpiscono un oggetto, vengono riflessi in un insieme di direzioni che dipende dalla rugosita' dell'oggetto stesso. Ragionando in modo inverso, anche la luce riflessa da un punto di un oggetto e' determinata dalla sua rugosita'. Skylight e Light-tracing Skylight e Light-tracing Per simulare l'illuminazione circostante in scene ambientate all'esterno, 3D studio mette a disposizione un meccanismo chiamato light-tracing. Esso si basa sul fatto che in una scena in esterno, la fonte di luce piu' significativa e' il cielo. Il cielo illumina un oggetto da tutte le direzioni. Skylight e Light-tracing Skylight e Light-tracing Alcuni punti di un oggetto possono pero' risultare occlusi da altri elementi presenti sulla scena, e quindi ricevere meno luce rispetto ad altri. 3D studio determina la porzione di cielo visibile tirando un numero di raggi in direzione casuale da ogni punto dell'oggetto (da questo il nome light-tracing). Skylight e Light-tracing Skylight e Light-tracing Per utilizzare questo tipo di illuminazione, occorre innanzi tutto inserire una luce di tipo skylight nella scena. Non ha importanza la sua posizione specifica basta sia presente. Si deve quindi attivare il calcolo del Light-tracing dall'apposito menu' a tendina della finestra di illuminazione avanzata. Skylight e Light-tracing Skylight e Light-tracing Renderizzando la scena, si produrranno immmagini con ombreggiature piu' diffuse, che conferiranno un maggiore senso di realismo. E' possibile utilizzare una immagine per definire il colore del cielo che illumina la scena. La procedura per definire la mappa e' simile a quella utilizzata per proiettare immagini dalle luci. Skylight e Light-tracing In questo caso i colori degli oggetti sulla scena dipendono dal colore del cielo che li sovrasta. Skylight e Light-tracing Malgrado il light-tracing sia in grado di produrre immagini di qualita' soddisfacente (in molti casi anche senza penalizzare eccessivamente i tempi di rendering) tale meccanismo presenta alcune limitazioni. Esso infatti puo' essere utilizzato solamente per scene esterne (in quanto altrimenti i muri di una stanza occluderebbero completamente la luce). Skylight e Light-tracing Inoltre non e' in grado di calcolare il fenomeno del color-bleeding: in natura, un oggetto illumina lievemente del suo colore gli elementi circostanti. Radiosity Light-tracing Le immagini HDR Le idee alla base del Light-tracing, sono state ultimamente estese nella tecnica chiamata imagebased lighting. In questo caso, si utilizza un'immagine (solitamente acquisita attraverso speciali fotografie di un ambiente reale) per illuminare una scena. Tale tecnica e' in grado di illuminare anche ambienti interni. Le immagini HDR Le immagini HDR Il problema principale nell'utilizzare una immagine come fonte di illuminazione risiede nel fatto che il lighttracing e' poco sensibile ai dettagli presenti nella figura. Tale difetto e' dovuto al fatto che nel mondo reale, le intensita' luminose che contraddistinguono le diverse sorgenti di luce, variano di molti ordini di grandezza (anche 16 - decine di milioni di milardi). Le comuni immagini bitmap, hanno solo 2 ordini di grandezza (256 livelli per ogni colore primario), e non sono quindi adeguate a catturare tutti i dettagli necessari ad illuminare una scena. Le immagini HDR Per far fronte a questo problema, e' stato inventato un nuovo formato di codifica delle immagini chiamato HDR (High Dynamic Range). Le immagini HDR In questo modo sono in grado di caratterizzare correttamente le fonti luminose, e possono essere utilizzate per riproporre illuminazioni ambientali complesse acquisite dal vero (anche in interno). Le immagini HDR utilizzano numeri in virgola mobile per memorizzare le intensita' dei colori presenti al loro interno. Le immagini HDR Radiosity Purtroppo pero', per ora le immagini HDR non sono ancora supportate dalla maggior parte dei software di elaborazione delle immagini e dalle macchine fotografiche digitali tradizionali. Una tecnica piu' precisa per il calcolo dell'illuminazione indiretta e' la radiosity. Inoltre, solamente le versioni piu' recenti di 3D studio MAX sono in grado di supportare immagini in formato HDR. Essa e' in grado di cattuare anche effetti quali il color-bleeding, e di funzionare correttamente anche in ambienti interni (racchiusi cioe' tra pareti). Radiosity La radiosity considera le leggi fisiche alla base dello scambio di energia tra le superfici. Si basa sul fatto che l'energia emessa da un corpo equivale all'energia propria del corpo stesso, piu' quella ricevuta dalle sorgenti cirocostanti e riflessa in altre direzioni. Radiosity L'intero spazio e' suddiviso in tante piccole celle. Per ognuna di queste celle viene calolata la quantita' di energia (di luce) emessa. Tale quantita' e' chiamat radiosity. Radiosity Radiosity Ogni cella ha la possibilita' di emettere radiazioni luminose. Ogni cella riflette in varie direzioni la luce ricevuta. Tutte le luci vengono considerate come celle speciali. Radiosity Bi=Ei+ρiΣjFijBj Queste equazioni tengono conto della geometria dell'ambiente (Fij) e della riflettivita' delle celle (ρi). Radiosity In 3D studio MAX si attiva utilizzando l'apposita opzione nella finestra dell'illuminazione avanzata. Bi=Ei+ρiΣjFijBj Per ogni cella viene impostata una equazione che calcola la sua radiosity (Bi) in funzione della luce emessa (E i) e della radiosity delle altre celle (Bj). Radiosity Le equazioni di radiosity formano un sistema la cui soluzione determina la quantita di luce irradiata da ciascuna cella. A partire da questa soluzione possono essere prodotte numerose "viste" di una medesima scena. Il numero totale di celle puo' pero' facilmente raggiungere diversi milioni: il tempo di calcolo puo' quindi essere estremamente oneroso. Radiosity Inoltre, la scena deve essere illuminata utilizzando le luci fotometriche, al posto delle luci standard. Radiosity Le luci fotometriche replicano l'illuminazione fisica prodotta da luci reali. Radiosity La differenza tra luci omniderazionali e spot, si ottiene variando la distribuzione della luce in una sorgente puntiforme. Le luci puntiformi simulano omniderzionali e spot, le luci lineari simulano quelle dirette, ed il cielo IES corrisponde allo skylight. In piu' per ambienti esterni e' possibile simulare il sole con la luce sole IES. Anche in questo caso, e' possibile inserire luci libere o con destinaizone. Radiosity Le luci fotometriche richiedono che le dimensioni di una scena siano realistiche. Per questo occorre impostare le unita' di misura nel menu' Personalizza>unita' di misura, e controllare che le dimensioni degli oggetti siano ragionevoli in queste unita'. Radiosity Il calcolo della soluzione della radiosity si effettua premendo l'apposito pulsante. Radiosity Una volta inserita la scena, occorre impostare il livello di suddivisione delle superfici nella finestra dell'illuminazione avanzata. Piu' la dimensione e' piccola, maggiori saranno le suddivisioni, migliore la qualita' e e piu' lungo il tempo di calcolo. Radiosity Terminato il calcolo, 3D Max visualizza le suddivisioni utilizzate nelle finestre wireframe... Radiosity Ed un'anteprima della soluzione ottenuta nella finestre con modalita' smussato ed illuminato. Radiosity Inoltre e' necessario applicare un filtro, per distribuire meglio la soluzione sulle superfici. Radiosity Ogni qual volta si effettua un cambiamento nella scena, e' necessario ricalcolare la soluzione premendo il pulsante Ripristina tutto. Radiosity E' possibile migliorare la soluzione ottenuta, incrementando il numero di raffinamenti, e premendo nuovamente avvia. Radiosity Il filtro non ricalcola la soluzione, ma semplicemente la rende piu' uniforme sulle superfici. Filtro = 0 Filtro = 2 Il controllo dell'esposizione La radiosty produce risultati caratterizzati da livelli di illuminazione con valori realistici. Come visto pero' in precedenza, i valori realistici di illuminazione variano su diversi ordini di grandezza. Il controllo dell'esposizione e' un filtro che permette di comprimere piu' ordini di grandezza di intensita' luminosa, nei 256 livelli di tonalita' possibili nelle comuni immagini bitmap. Il controllo dell'esposizione Il controllo dell'esposizione Il controllo dell'esposizione si inserisce nella finestra ambiente del menu' Rendering->Ambiente. Per immagini calcolate con Radiosity, occorre inserire un controllo di esposizione logaritmico. Inoltre e' necessario lavorare sui parametri (in particolar modo sulla luminosita') per correggere manualmente il risultato finale dell'immagine ottenuta. Il controllo dell'esposizione Il controllo dell'esposizione In caso di scene in esterno, occorre specificare l'apposita opzione per la Luce diurna esterna. Con un buon controllo di esposizione, la radiosity e' in grado di produrre immagni estremamente fedeli sia per interni che per esterni.