Presentazione corso - Camillo Trevisan Università Iuav di Venezia

Transcript

Presentazione corso - Camillo Trevisan Università Iuav di Venezia
Shading
Rendering
IUAV – dCP – corso Disegno Digitale
Camillo Trevisan
Modelli di illuminazione
Obiettivo: non tanto simulare il vero
comportamento della luce, ma piuttosto
riprodurre realisticamente l’effetto che la luce ha
sugli oggetti della scena.
Il nostro occhio è sensibile anche a pochissimi
fotoni e si adatta rapidamente a condizioni di
luce molto diverse tra loro, anche se presenti
contemporaneamente nella stessa scena.
Nessuna tecnologia può, nemmeno
lontanamente, avvicinarsi alla percezione
umana.
IUAV – dCP – corso Disegno digitale 2013-14
2
Modelli di illuminazione
Per ‘mettere in luce’ le varie parti degli oggetti,
individuare le ombre proprie e portate, dare
profondità alla scena, è necessario usare un
modello di illuminazione: un modello
matematico che descrive, in modo più o meno
semplificato, l’interazione tra la luce e gli oggetti
presenti nella scena. L’illuminazione complessiva
è data dalla somma di tre componenti di luce:
Ambiente+Diffusa+Riflessa.
L’aspetto più critico è la resa della profondità:
questa è, in realtà, un’illusione ottica.
IUAV – dCP – corso Disegno digitale 2013-14
3
Luci
Esistono vari tipi di luci:
• Direzionale (direction light)
• Puntiforme (point light)
• Spot (spot light)
• Area (area light)
• Volumetrica (volume light)
• Ambientale (ambient light)
Queste possono essere ricondotte a due categorie di modelli di
illuminazione: i modelli locali e i modelli globali.
I primi descrivono in modo semplificato luci e interazioni di
queste con gli oggetti in scena; i secondi considerano in modo
più accurato le interazioni, comprendendo molti fenomeni
trascurati dai primi modelli.
IUAV – dCP – corso Disegno digitale 2013-14
4
Assorbimento della luce che colpisce una superficie
Angolo di riflessione uguale all’angolo di incidenza (rispetto alla normale alla superficie)
IUAV – dCP – corso Disegno digitale 2013-14
5
Riflessione diffusa della luce
IUAV – dCP – corso Disegno digitale 2013-14
6
Shading
Nella computer grafica, lo shading si riferisce al
processo di alterare un colore di riferimento
basandosi sull'angolo d'incidenza della luce e
sulla distanza dalla sorgente, per raggiungere un
effetto realistico.
Lo shading è uno dei passi presenti nel processo
di rendering e modifica il colore delle facce del
modello tridimensionale basandosi anche
sull'angolo formato dalla superficie rispetto al
sole o ad altre sorgenti di luce.
IUAV – dCP – corso Disegno digitale 2013-14
7
Shading
Teoricamente, due superfici parallele sono
illuminate in modo identico da una sorgente
posta a distanza ‘infinita’, come il sole.
Anche se una delle due superfici è più distante
dai nostri occhi, l’illuminazione sembra identica.
Molti algoritmi di shading e rendering
implementano il Falloff che produce immagini
che sembrano maggiormente realistiche senza la
necessità di aggiungere altre luci per ottenere lo
stesso effetto. L’algoritmo fa sì che le facce più
distanti dall’osservatore appaiano più scure delle
vicine, pur se parallele tra loro.
IUAV – dCP – corso Disegno digitale 2013-14
8
Equazione di rendering
Per produrre una rappresentazione efficace
dell'immagine, è necessario simulare la fisica della
luce. Il modello matematico più astratto del
comportamento della luce è l'equazione di
rendering, basata sulla legge di conservazione
dell'energia. Essa è un'equazione integrale, che
calcola la luce in una certa posizione come la luce
emessa in quella posizione sommata all'integrale
della luce riflessa da tutti gli oggetti della scena che
colpisce quel punto. Questa equazione infinita non
può essere risolta con algoritmi finiti, quindi
necessita di un’approssimazione.
IUAV – dCP – corso Disegno digitale 2013-14
9
L’equazione di rendering descrive il flusso di energia luminosa di una
scena. E’ basata sulla fisica della luce e pertanto è teoricamente ‘perfetta’.
I vari ‘motori di rendering’ approssimano questa equazione in forma più o
meno complessa mediante vari ‘cortocircuiti’ e semplificazioni.
La base fisica è la legge di conservazione dell’energia, vale a dire che,
sebbene possa essere trasformata e convertita da una forma all’altra, la
quantità totale di energia di un sistema isolato è una costante, ovvero il
suo valore si mantiene immutato al passare del tempo.
In una particolare posizione e direzione, la luce uscente (Lo) corrisponde
alla somma della luce emessa (Le) e di quella riflessa (Lr). La luce riflessa è
la somma della luce entrante (Li) da tutte le direzioni, moltiplicata per la
superficie riflettente e per l’angolo di incidenza.
Due interessanti caratteristiche sono: la sua linearità (è composta solo di
moltiplicazioni e addizioni), e la sua omogeneità spaziale (è la stessa in
tutte le posizioni e direzioni).
Unendo la luce uscente a quella entrante, attraverso un punto
d'interazione, questa equazione rappresenta l'intero trasporto di
luce presente nella scena.
Tutti i più complessi algoritmi possono essere visti come soluzioni a
particolari formulazioni di questa equazione.
IUAV – dCP – corso Disegno digitale 2013-14
10
In una particolare posizione e
direzione, la luce uscente (Lo)
corrisponde alla somma della luce
emessa (Le) e di quella riflessa.
La luce riflessa è la somma della luce
entrante (Li) da tutte le direzioni,
moltiplicata per la superficie
riflettente e per l’angolo di incidenza.
IUAV – dCP – corso Disegno digitale 2013-14
11
IUAV – dCP – corso Disegno digitale 2013-14
12
I modelli di illuminazione più semplici considerano solo la luce
che viaggia direttamente da una sorgente luminosa ad un
oggetto: questa è chiamata illuminazione diretta.
Il modo in cui la luce viene riflessa dall'oggetto può essere
descritto da una funzione matematica, chiamata "funzione di
distribuzione della riflessione bidirezionale" (bidirectional
reflectance distribution function, BRDF), che tiene conto delle
caratteristiche del materiale illuminato. La maggior parte dei
sistemi di rendering semplifica ulteriormente e calcola
l'illuminazione diretta come la somma di due componenti:
diffusa e speculare. La componente diffusa, o Lambertiana,
corrisponde alla luce che viene diffusa dall'oggetto in tutte le
direzioni, quella speculare alla luce che si riflette sulla superficie
dell'oggetto come su uno specchio. Il modello di riflessione di
Phong aggiunge una terza componente, ambientale, che fornisce
una simulazione semplice dell'illuminazione indiretta.
IUAV – dCP – corso Disegno digitale 2013-14
13
Con il termine bidirectional reflectance distribution function (BRDF) si intende una
misura della distribuzione della riflettanza (la proporzione di luce incidente che una
data superficie è in grado di riflettere). È una funzione a quattro dimensioni che
definisce quanta luce è riflessa su una superficie opaca. La funzione considera la
direzione della luce che arriva wi e quella che esce wo, entrambe rispetto alla
normale alla superficie N. Questa funzione ritorna il rapporto tra la
radianza (quantità di luce emessa, riflessa o trasmessa da una superficie di area
unitaria) riflessa esistente lungo wo e l’irradianza (o illuminanza, è la fluenza di
radiazione elettromagnetica, ovvero la densità di corrente termica trasmessa per
irraggiamento) incidente sulla superficie dalla direzionewi.
Da notare che ogni direzione wè parametrizzata da due angoli: un azimuth e uno
zenith (per questo ha quattro dimensioni).
IUAV – dCP – corso Disegno digitale 2013-14
14
Modello di riflessione di Phong
Il modello di riflessione di Phong può essere visto
come una semplificazione della più generica
equazione di rendering, con il vantaggio di
semplificare il calcolo del colore di un punto della
superficie:
- È un modello di riflessione locale, ovvero non
considera riflessioni di secondo ordine, a differenza
di quanto fatto dal ray tracing e dal radiosity. Al fine
di compensare la perdita di parte della luce riflessa,
un'ulteriore luce ambiente viene aggiunta alla scena.
- Divide la riflessione in tre componenti:
riflessione speculare, riflessione diffusiva e
riflessione d'ambiente.
IUAV – dCP – corso Disegno digitale 2013-14
15
Rappresentazione del modello di riflessione di Phong
In questa immagine, i colori "ambiente" e "diffuso" sono
gli stessi.
Da notare che l'intensità della componente diffusiva varia
al variare della direzione della superficie, mentre la luce
ambiente è costante.
Il colore speculare è bianco, e riflette quasi tutta la luce
entrante, ma solo in un limitato fascio di direzioni.
IUAV – dCP – corso Disegno digitale 2013-14
16
Definiamo per prima cosa, per ogni sorgente luminosa, le componenti is e id,
che sono rispettivamente le intensità (spesso misurate in RGB) delle
componenti speculare e diffusiva della luce.
Una costante ia controlla la luce ambiente e viene calcolata come somma dei
contributi forniti dalle varie sorgenti. Se definiamo, per ogni materiale:
ks: costante di riflessione speculare, la percentuale riflessa di luce entrante;
kd: costante di riflessione diffusiva, la percentuale di luce entrante che viene
diffusa;
ka: costante di riflessione d'ambiente, percentuale di riflessione della luce
ambiente presente in ogni punto della scena;
α: costante di lucentezza del materiale in questione, che decide in quale
modo la luce viene riflessa.
Definiamo inoltre lights come insieme di tutte le sorgenti di luce, N è la
normale in questo punto, L è il vettore verso il punto luce considerato, R è la
direzione di un raggio perfettamente riflesso (rappresentato con un vettore)
e V è la direzione verso chi guarda (ad esempio una camera).
Il valore di shading per ogni punto della superficie Ip viene così calcolato:
IUAV – dCP – corso Disegno digitale 2013-14
17
IUAV – dCP – corso Disegno digitale 2013-14
18
Il termine diffusivo non utilizza la direzione V (direzione verso la
camera), dal momento che è costante in tutte le direzioni, inclusa la
direzione della camera. Il termine speculare è grande se il vettore R
(direzione raggio riflesso) è quasi allineato con V, valore ottenuto
misurando il coseno dell'angolo formato tra di essi, ovvero il prodotto
scalare dei vettori R e V. Quando α è grande, la superficie si presenta
simile a uno specchio e la dimensione della riflessione sarà minima
grazie all'alto valore del coseno che tende rapidamente a zero se i due
vettori non sono allineati.
Quando i colori sono rappresentati con valori RGB, questa equazione
viene calcolata separatamente per ogni valore della terna.
Quello di Phong è un modello di riflessione empirico, non basato sulla
descrizione fisica dell'interazione di luce, ma piuttosto
sull'osservazione informale. Phong osservò che le superfici altamente
riflettenti creavano un riflesso piccolo, mentre l'intensità di quelle
opache diminuiva in maniera più graduata.
IUAV – dCP – corso Disegno digitale 2013-14
19
Flat, Gouraud e Phong shading
Il flat shading è la tecnica base usata nello shading di oggetti: colora
ciascun poligono in relazione all’angolo di incidenza della luce.
Naturalmente evidenzia tutte le sfaccettature dell’oggetto.
Il Gouraud shading, che prende il nome da Henri Gouraud, serve per
ottenere un graduato cambiamento di colore su superfici a basso
numero di poligoni (low-polygon) senza dover ricorrere alla
pesantezza computazionale del calcolo pixel per pixel.
Gouraud pubblicò questa ricerca per la prima volta nel 1971.
Il principio su cui si basa la tecnica di Gouraud è il seguente:
viene fatta una stima della normale in ogni vertice di un modello 3D
calcolando la media delle normali dei poligoni vi convergono.
Partendo da queste stime si può utilizzare il modello di riflessione di
Phong per calcolare l'intensità del colore nei vertici.
Il colore dei vari pixel può essere trovato interpolando i valori calcolati
nei vertici.
IUAV – dCP – corso Disegno digitale 2013-14
20
Gouraud shading
I punti di forza e di debolezza del Gouraud shading risiedono entrambi
nell'uso che esso fa dell'interpolazione.
Interpolare i colori di vari pixel (conoscendone con precisione solo
pochi) alleggerisce il calcolo rispetto a modelli più raffinati (come il
Phong shading). Purtroppo, però, gli effetti di luce localizzati (come
punti di riflettenza, ad esempio la riflessione di una sorgente di luce
su di una sfera) non verranno renderizzati correttamente: se l'effetto
è collocato al centro del poligono, senza raggiungere i vertici, non
apparirà come risultato del rendering di Gouraud; se lo stesso effetto
è collocato su di un vertice, verrà mostrato correttamente, ma verrà
replicato in modo innaturale sui poligoni adiacenti. Il problema è
facilmente riconoscibile se si renderizza una scena nella quale la
sorgente di luce si muove, spostando la riflessione presente
sull'oggetto in questione. Con il Gouraud shading si vedrebbe la
riflessione allargarsi e stringersi continuamente, raggiungendo i picchi
d'intensità nei vertici e sparendo al centro dei poligoni.
IUAV – dCP – corso Disegno digitale 2013-14
21
Esempio di shading Gouroud
A sinistra. Sfera trattata con il Gouraud shading: da notare la scarsa
accuratezza lungo i lati dei poligoni.
A destra. La stessa sfera riprodotta con un alto numero di poligoni.
IUAV – dCP – corso Disegno digitale 2013-14
22
Phong shading
La riflessione di Phong è un modello di illuminazione locale che può
conferire un certo grado di realismo agli oggetti tridimensionali
attraverso la combinazione di tre elementi: diffusione, riflessione e
luce ambiente per ogni punto della superficie.
Come metodo di rendering, il Phong Shading può essere visto come
un miglioramento del Gouraud shading.
Il problema principale del Gouraud Shading si ha quando la riflessione
è vicina al centro di un grande triangolo. In pratica la riflessione non
verrà mostrata, a causa dell'interpolazione di colori tra i vertici.
Questo problema è stato corretto dal Phong shading.
IUAV – dCP – corso Disegno digitale 2013-14
23
Phong shading
Siano dati tre vertici in due dimensioni (tre punti non allineati né
coincidenti che definiscono un piano nello spazio e i tre vertici di un
triangolo appartenente al piano), V1, V2 e V3, e le normali alle superfici
per ogni vertice: N1, N2 e N3.
Supponiamo che siano tutte di lunghezza unitaria (versori).
A differenza del Gouraud shading, che interpola il colore lungo il
triangolo, nel metodo di Phong si interpola linearmente la normale N
lungo la superficie del triangolo, partendo dalle tre normali date.
Questo calcolo viene effettuato per ogni pixel del triangolo.
In ogni pixel si normalizza N (si fa in modo che N abbia valore unitario)
e lo si usa all'interno del modello di riflessione di Phong per ottenere
il colore da assegnare al pixel.
E’ dunque necessario ricalcolare
continuamente l’angolo tra il
Punto di Vista e il fascio di luce
riflessa (R • V, prodotto scalare).
IUAV – dCP – corso Disegno digitale 2013-14
24
Blinn-Phong shading
Come appena visto, nel Phong shading è necessario calcolare per
ciascuna faccia l’angolo tra il Punto di Vista (V) e il fascio di luce
riflessa (R). Se invece si calcola il vettore H bisettore dell’angolo tra V e
L, possiamo sostituire all’angolo tra R e V quello tra N e H, dove N è la
normale alla superficie. Questo angolo è la metà dell’altro se V, L, N, R
giacciono sullo stesso piano, ma la relazione si mantiene, sia pure
approssimativamente, anche quando i vettori non giacciono sullo
stesso piano, soprattutto se gli angoli sono piccoli. Il vantaggio del
metodo consiste nel non dover calcolare l’angolo per ogni faccia ma
solo quello per ciascuna sorgente di luce, se V e L sono all’infinito.
IUAV – dCP – corso Disegno digitale 2013-14
25
Blinn-Phong modificato
Usare l’angolo bisettore pone diversi problemi. Anzitutto di ordine
matematico: distrugge la reciprocità di Helmholtz, vale a dire che non
è più possibile ricostruire a ritroso il percorso dei raggi riflessi.
In secondo luogo transizioni di luce molto dure tra pixel molto
luminosi e molto scuri, con viste radenti, creano silhouette. Nel tempo
sono state messe a punto molte varianti di questo algoritmo.
IUAV – dCP – corso Disegno digitale 2013-14
26
Oren-Nayar
L’algoritmo di Oren-Nayar si utilizza per superfici molto rugose, e
dunque non Lambertiane (appartiene alla famiglia delle microfacet
models, che trattano le superfici come un insieme di facce
microscopiche). Un insieme numeroso di microfacce che descrivono
superfici rugose viola la legge di Lambert, anzitutto perché, al variare
dell’angolo di vista, l’insieme delle facce che ‘vedono’ il PV sotto il
medesimo angolo si modifica continuamente e fortemente e pertanto
l’apparenza della superficie è in funzione del Punto di Vista.
Geometria delle microfacce.
Esempio di superficie composta
da microfacce. Direzione della
normale A (con V normale alla
macrosuperficie).
Interazione tra le microfacce:
interriflessioni, mascherature,
shadowing.
IUAV – dCP – corso Disegno digitale 2013-14
27
Oren-Nayar
Si assume che la superficie sia composta da cavità a V simmetriche e
regolari, più piccole di un pixel, una volta proiettate. Ciascuna cavità è
composta da due facce piane. La rugosità della superficie è data da
una funzione di probabilità di distribuzione delle inclinazioni delle
facce (in particolare si usa spesso una distribuzione Gaussiana).
Ciascuna faccia usa una funzione di riflessione Lambertiana.
Naturalmente minore è l’inclinazione e maggiore è la ‘vicinanza’ della
superficie complessiva a quella Lambertiana e viceversa.
IUAV – dCP – corso Disegno digitale 2013-14
28
Illuminazione globale
Gli oggetti sono in realtà bombardati da moltissime sorgenti luminose
indirette: la luce rimbalza da un oggetto all'altro finché non perde
energia. L'illuminazione globale indaga questo comportamento della
radiazione luminosa.
Come l'illuminazione diretta, essa comprende una componente
diffusa ed una speculare.
La riflessione reciproca diffusa riguarda la luce che colpisce un oggetto
dopo averne già colpito un altro. Dal momento che questo ha
assorbito una data lunghezza d'onda dello spettro della luce che lo ha
colpito, la luce che respinge ha un colore diverso da quella da cui è
illuminato.
La riflessione reciproca speculare si manifesta generalmente con
caustiche (ovvero con la concentrazione della radiazione luminosa in
un punto da parte di una superficie speculare, come quella ottenibile
dalla luce solare con una lente).
IUAV – dCP – corso Disegno digitale 2013-14
29
Algoritmi di illuminazione globale
Gli algoritmi di Illuminazione globale vengono comunemente usati in
computer grafica 3D per aggiungere un'illuminazione realistica alle
scene. Alcuni di questi algoritmi tengono conto non solo della luce
ricevuta direttamente da una sorgente di luce (illuminazione diretta),
ma anche di quella riflessa, diffusa, o rifratta da altre superfici
(illuminazione indiretta). Le immagini renderizzate con l'uso di
algoritmi di illuminazione globale, spesso appaiono più realistiche
rispetto a quelle che utilizzano solo l'illuminazione diretta. La loro
computazione, però, è molto più lenta.
Un approccio comune consiste nel calcolare l'illuminazione globale di
una scena e memorizzare questa informazione in senso geometrico,
ad esempio con la radiosity. I dati così salvati, possono essere usati per
creare immagini da differenti punti di vista, generando così dei
percorsi animati (walkthrough) senza dover ricalcolare continuamente
l'illuminazione.
IUAV – dCP – corso Disegno digitale 2013-14
30
Algoritmi di illuminazione globale
Radiosity, ray tracing, path tracing, ambient occlusion, e photon
mapping sono esempi di algoritmi usati nel campo dell'illuminazione
globale; alcuni possono essere combinati tra loro per ottenere risultati
più rapidi, ma comunque accurati.
Questi algoritmi modellano l'inter-riflessione diffusa, una parte molto
importante dell'illuminazione globale. Buona parte di questi (esclusa la
radiosity) modellano anche la riflessione speculare, il che li rende più
precisi nella risoluzione dell'equazione di luce e fornisce un effetto più
realistico alla scena.
Gli algoritmi utilizzati per calcolare la distribuzione dell'energia
luminosa tra superfici di una scena, sono strettamente correlati con le
simulazioni di trasferimento di calore, risolte in ingegneria con l'uso
del metodo degli elementi finiti.
IUAV – dCP – corso Disegno digitale 2013-14
31
Il metodo degli Elementi Finiti
Il metodo degli ‘elementi finiti’ è stato messo a punto per risolvere
problemi di analisi strutturale e si applica a corpi che possono essere
suddivisi in un gran numero di elementi di forma definita ed
elementare e di dimensioni molto piccole rispetto al corpo stesso.
Applicando lo stesso algoritmo a tutti gli elementi e risolvendo il
problema per ciascun elemento, si giunge così alla soluzione del
problema applicato all’intero corpo. Ad esempio, dovendo calcolare, al
variare della temperatura, la dilatazione di un oggetto metallico di
forma complessa e anche composto di varie parti in leghe diverse tra
loro e con temperature che variano nello spazio e nel tempo, lo si
potrà suddividere in moltissimi piccoli cubi per i quali è semplice
risolvere il problema del calcolo della dilatazione nel tempo.
Sommando tra di loro gli effetti si troverà la soluzione complessiva.
Naturalmente, più numerosi saranno i piccoli cubi che ‘approssimano’
l’oggetto, migliore sarà anche l’accuratezza dell’analisi.
IUAV – dCP – corso Disegno digitale 2013-14
32
Ray casting
Il Ray casting usa il test di intersezione tra una semiretta e una
superficie per risolvere vari problemi di computer grafica.
Può riferirsi a:
• Un problema generale per determinare il primo oggetto
intersecato da un raggio.
• Una tecnica per la rimozione delle superfici nascoste.
• Una variante non ricorsiva del Ray tracing che considera solo il
raggio primario
• Un metodo diretto di volume rendering, il volume ray casting.
IUAV – dCP – corso Disegno digitale 2013-14
33
Ray casting
Il Ray casting può essere considerato una versione veloce del Ray
tracing, poiché non calcola la nuova direzione che un raggio di luce
può assumere dopo aver intersecato una superficie nel suo viaggio
verso l’occhio dell’osservatore. Questo comporta l’impossibilità di
calcolare accuratamente le riflessioni, le rifrazioni e il naturale falloff
delle ombre. L’algoritmo originale (Arthur Appel, 1968) consiste nel
lanciare raggi dal punto di vista, uno al centro di ciascun pixel
dell’immagine da creare, per trovare il primo oggetto che lo interseca.
Usando le proprietà del materiale e gli effetti di luce della scena,
questo algoritmo può determinare lo shading degli oggetti in scena,
usando un metodo di shading tradizionale.
Un importante vantaggio del Ray casting è la sua capacità di trattare
facilmente oggetti matematici non piani per i quali è semplice definire
l’intersezione con una retta: ad esempio, sfere, coni, cilindri.
IUAV – dCP – corso Disegno digitale 2013-14
34
Volume Ray casting
Volume ray casting (anche noto come volumetric ray casting,
volumetric ray tracing, volume ray marching) è una tecnica di
rendering image-based, poiché calcola immagini 2D da una scena 3D.
Comprende quattro passaggi:
1. Ray casting: per ciascun pixel è lanciato un raggio dal PV.
2. Sampling: si definiscono dei sampling points lungo la parte del
raggio che si trova all’interno del volume.
IUAV – dCP – corso Disegno digitale 2013-14
35
Volume Ray casting
3. Shading: per ciascun campione è calcolato il gradiente (vale a dire
l’orientamento della superficie entro il volume). I campioni sono
quindi sottoposti a shading, in relazione all’orientamento della loro
superficie rispetto alle luci di scena.
4. Compositing: i colori dei campioni, ottenuti a partire dall’equazione
di rendering, sono composti e miscelati tra loro, a partire dal fondo,
determinando il colore finale del pixel in elaborazione.
IUAV – dCP – corso Disegno digitale 2013-14
36
Ray tracing
Come per il Ray casting la tecnica del Ray tracing (Turner Whitted,
1979) segue i raggi partendo dal Punto di Vista.
Lavora tracciando, all’inverso, il percorso che potrebbe aver seguito
un raggio di luce prima di giungere al PV.
Mentre la scena è attraversata dal raggio, sono calcolate la riflessione,
la rifrazione e l’assorbimento nel punto in cui il raggio stesso colpisce
un qualsiasi oggetto.
I precedenti algoritmi lanciavano anch’essi il raggio dall'occhio verso la
scena, ma i raggi non venivano più seguiti. Quando un raggio colpisce
una superficie, può generare fino a tre nuovi tipi di raggio: riflessione,
rifrazione e ombra. Un raggio riflesso continua nella direzione della
riflessione a specchio su di una superficie lucida. A questo punto
interagisce con altri oggetti della scena; il primo oggetto che colpisce
sarà quello visto nel riflesso presente sull'oggetto originario.
Il raggio rifratto viaggia attraverso il materiale trasparente in modo
simile, con l'aggiunta che può entrare o uscire da un materiale.
IUAV – dCP – corso Disegno digitale 2013-14
37
Ray tracing
Per evitare di tracciare tutti i raggi presenti in una scena, un ‘raggio
ombra’ viene usato per testare se la superficie sia visibile a una luce.
Un raggio colpisce una superficie in un qualche punto. Se questo
punto "vede" la luce, il raggio viene seguito fino alla sorgente. Se
durante il tragitto si incontra un oggetto opaco, la superficie è in
ombra e quella sorgente non contribuisce al calcolo del colore.
IUAV – dCP – corso Disegno digitale 2013-14
38
Ray tracing
Svantaggi. Un grave svantaggio è dato dalle performance. Il raytracing
itera tutto il procedimento per ogni nuovo pixel, trattando ogni raggio
in modo separato. Questa separazione offre vantaggi, ad esempio la
possibilità di spedire più raggi del necessario per ottenere
l'antialiasing e migliorare la qualità dell'immagine. Nonostante
gestisca accuratamente interriflessioni e rifrazioni, il Ray Tracing
tradizionale non è necessariamente realistico. Il vero realismo si
ottiene quando l'equazione di rendering è ben approssimata o
completamente implementata. Il calcolo completo è normalmente
impossibile date le risorse di computazione richieste. Il realismo di
tutti i metodi di rendering, quindi, deve essere valutato in rapporto
all'approssimazione dell'equazione e, nel caso del ray tracing, non è
necessariamente il più realistico. Altri metodi, tra cui il photon
mapping, sono basati sul ray tracing in alcune parti dell'algoritmo, e
danno migliori risultati.
IUAV – dCP – corso Disegno digitale 2013-14
39
Photon mapping
Il photon mapping è in grado di simulare la rifrazione della luce
attraverso sostanze trasparenti, ad esempio il vetro o l'acqua,
riflessioni reciproche tra oggetti illuminati e alcuni effetti causati da
particelle come il fumo o il vapore acqueo. Il photon mapping è stato
sviluppato dal ricercatore danese Henrik Wann Jensen.
La prima fase consiste nel simulare l'emissione di fotoni (photon
tracing, di solito più di 10.000) dalle sorgenti di luce di scena e nel
tracciamento, all'interno della scena stessa, di una mappa 3D di fotoni
virtuali; la seconda fase consiste nel rendering della scena utilizzando
le informazioni contenute nella mappa, precedentemente creata, per
stimare la radianza riflessa sulle superfici della scena.
Al contrario dei tradizionali algoritmi di rendering permette di
calcolare con buona precisione effetti di luce quali caustiche,
riflessioni e surface scattering, e pertanto risulta particolarmente utile
nella produzione di immagini con elementi in cristallo o metallo o con
materiali translucidi.
IUAV – dCP – corso Disegno digitale 2013-14
40
Ray Tracing classico
Photon path
IUAV – dCP – corso Disegno digitale 2013-14
41
Photon mapping – senza PM – 1000 – 2000 – 6000 fotoni
IUAV – dCP – corso Disegno digitale 2013-14
42
Surface scattering
In fisica la diffusione ottica (dispersione o scattering in inglese) si
riferisce a un'ampia classe di fenomeni nei quali onde o particelle
vengono deflesse (ovvero cambiano traiettoria) a causa della
collisione con altre particelle o onde. La deflessione avviene in
maniera disordinata e in buona misura casuale e per questo la
diffusione si distingue dalla riflessione e dalla rifrazione, che invece
cambiano le traiettorie in maniera regolare e determinata. Sono
considerati processi di scattering solo le interazioni che non
comportino rilevanti cessioni o guadagni di energia.
Un esempio tipico è il colore bianco del latte o della farina o
delle nuvole: in questo caso le particelle del latte o della farina, o le
goccioline d'acqua delle nuvole, diffondono uniformemente tutte le
lunghezze d’onda della luce e, poiché il processo si ripete moltissime
volte all'interno del mezzo, la direzione di provenienza della luce non
è più riconoscibile e il mezzo assume un colore bianco.
IUAV – dCP – corso Disegno digitale 2013-14
43
Caustiche
Le caustiche sono delle entità geometriche formate dalla concentrazione
singolare di curve, che modellizzano approssimativamente il
comportamento dei raggi luminosi focalizzati da lenti o specchi curvi, che
danno luogo a delle zone molto luminose quando incontrano una superficie.
IUAV – dCP – corso Disegno digitale 2013-14
44
IUAV – dCP – corso Disegno digitale 2013-14
45
IUAV – dCP – corso Disegno digitale 2013-14
46
L’algoritmo di Monte Carlo
L’algoritmo di Monte Carlo è un metodo numerico che viene utilizzato
per trovare le soluzioni di problemi matematici che possono avere
molte variabili e che non possono essere risolti facilmente per via
diretta. Il metodo è usato per trarre stime attraverso simulazioni.
Si basa su un algoritmo che genera una serie di numeri che seguono la
distribuzione di probabilità che si suppone abbia il fenomeno da
indagare.
La simulazione Monte Carlo calcola una serie di realizzazioni possibili
del fenomeno in esame, con il peso proprio della probabilità di tale
evenienza, cercando di esplorare in modo denso tutto lo spazio dei
parametri del fenomeno. Una volta calcolato questo campione
casuale, la simulazione esegue delle misure delle grandezze di
interesse su tale campione. La simulazione Monte Carlo è ben
eseguita se il valore medio di queste misure sulle realizzazioni del
sistema converge al valore vero.
IUAV – dCP – corso Disegno digitale 2013-14
47
L’algoritmo di Monte Carlo
Non c'è un solo metodo Monte Carlo: il termine descrive invece una classe di approcci
molto utilizzati per una larga categoria di problemi.
Tuttavia, questi approcci tendono a seguire un particolare schema:
• Definire un dominio di possibili dati in input.
• Generare input casuali dal dominio con una certa distribuzione di probabilità
determinate.
• Eseguire un calcolo deterministico utilizzando i dati in ingresso (input).
• Aggregare i risultati dei calcoli singoli nel risultato finale.
Un esempio particolare dell'utilizzo del metodo Monte Carlo è l'impiego del metodo
nell'analisi scacchistica. Negli ultimi anni i più forti programmi scacchistici in
commercio, implementano delle opzioni d'analisi che utilizzano la analisi Monte Carlo.
Per valutare una posizione, si fanno giocare al computer migliaia di partite partendo
dalla posizione da analizzare, facendo eseguire al PC mosse del tutto casuali o pseudocasuali (quindi scelte tra le mosse più logiche). La media dei risultati ottenuti in queste
partite è un'indicazione plausibile della mossa migliore.
Esempio del gioco della battaglia navale.
IUAV – dCP – corso Disegno digitale 2013-14
48
Ambient occlusion
L'ambient occlusion è un metodo di shading che tiene conto
dell'attenuazione luminosa in prossimità di volumi occlusi.
Diversamente da metodi locali come il Phong shading, l'ambient
occlusion è un metodo globale, cioè l'illuminazione di ogni punto è
funzione della geometria della scena. Ad ogni modo è
un'approssimazione grezza dell'intera illuminazione globale.
L'aspetto generato dalla sola ambient occlusion è simile a quello di un
oggetto in un giorno nuvoloso.
Solitamente l'ambient occlusion viene calcolata tracciando raggi in
ogni direzione dalla superficie. I raggi che raggiungono lo sfondo o il
"cielo" aumentano la luminosità della superficie, mentre quelli che
intercettano un altro oggetto non aggiungono alcuna illuminazione.
Di conseguenza i punti circondati da molte altre geometrie vengono
renderizzati in ombra, mentre i punti più liberi da ingombri risultano
più chiari. Una buona caratteristica di questo metodo di shading è
quella di offrire una migliore percezione della forma tridimensionale
degli oggetti mostrati.
IUAV – dCP – corso Disegno digitale 2013-14
49
Ambient occlusion
IUAV – dCP – corso Disegno digitale 2013-14
50
Ambient occlusion
IUAV – dCP – corso Disegno digitale 2013-14
51
Ambient occlusion – Texture mapping
IUAV – dCP – corso Disegno digitale 2013-14
52
Texture mapping
IUAV – dCP – corso Disegno digitale 2013-14
53
Texture mapping
Per ciascun vertice del triangolo si
assegnano le coordinate u,v nello spazio
texture. Una texture è di norma definita
in coordinate normalizzate [0,1]x[0,1]
nello spazio parametrico della texture.
Pertanto si definisce un mapping tra il
triangolo e un triangolo della texture.
Ciascun vertice (di ciascun triangolo) ha le
sue coordinate u,v nello spazio texture.
IUAV – dCP – corso Disegno digitale 2013-14
54
Texture mapping
IUAV – dCP – corso Disegno digitale 2013-14
55
Texture mapping
IUAV – dCP – corso Disegno digitale 2013-14
56
Radiosity
Radiosity è una tecnica di illuminazione globale che usa metodi degli
elementi finiti per risolvere l’equazione di rendering in scene
composte da superfici perfettamente diffusive.
Usa un meccanismo indiretto: anziché calcolare i percorsi della luce
dalla fonte alle superfici, verifica quanta luce può ‘vedere’ ciascuna
porzione di superficie.
La radiosity tiene conto solo dei percorsi che partono da
una sorgente e vengono riflessi diffusivamente un certo numero di
volte (anche zero) prima di colpire l'occhio.
Come metodo di rendering, la radiosità venne presentata nel 1984 da
ricercatori della Cornell University (C. Goral, K. E. Torrance, D. P.
Greenberg and B. Battaile) in un articolo intitolato "Modeling the
interaction of light between diffuse surfaces".
IUAV – dCP – corso Disegno digitale 2013-14
57
Radiosity
L'inclusione di calcoli di radiosità nel processo di rendering
spesso aggiunge realismo al risultato proprio per il modo
con il quale simula il mondo reale.
Consideriamo una semplice stanza.
L'immagine in alto è stata generata con un normale
renderer a illuminazione diretta. Esistono tre tipi di luce
nella scena, scelte e collocate nel tentativo di creare la
giusta illuminazione: luci spot con ombre (per creare
l'illuminazione sul pavimento), luce d'ambiente (senza la
quale il resto della stanza sarebbe al buio) e luci
omnidirezionali senza ombra (per ridurre la piattezza della
luce d'ambiente).
L'immagine in basso è stata calcolata con l'uso di un
algoritmo di radiosità. C'è una sola sorgente di luce,
un'immagine del cielo posta all'esterno della stanza.
La differenza è ben visibile. Ombre morbide sono visibili sul
pavimento e vari effetti luminosi sono presenti nella stanza.
Inoltre, il colore rosso del tappeto viene riflesso sui muri
grigi, procurando un effetto realistico.
Nessuno di questi effetti è stato creato ad arte, sono tutti
frutto dell'algoritmo.
IUAV – dCP – corso Disegno digitale 2013-14
58
Radiosity
La superficie della scena da visualizzare viene divisa in una o più superfici (patch) e
l'algoritmo si occupa di una superficie alla volta. Per ogni ‘passata’ dell'algoritmo
viene calcolata la luce che una patch riceve dalle altre. Una parte della luce viene
considerata assorbita, il resto viene riflesso nella scena per il prossimo passaggio
dell'algoritmo.
Uno dei comuni metodi per la risoluzione dell'equazione di radiosità viene definita
shooting radiosity e risolve in modo iterativo ‘sparando’ (da qui il nome) luce da
una superficie a ogni passo dell’algoritmo. Dopo la prima passata saranno illuminati
solo gli oggetti che vedono la sorgente di luce. Dopo la seconda, altre superfici
riceveranno la luce a causa del rimbalzo di quest'ultima sulle patch già illuminate.
La scena acquisisce luminosità ad ogni passo, fino a raggiungere una stabilità,
dovuta al quasi totale assorbimento della luce da parte delle patch.
IUAV – dCP – corso Disegno digitale 2013-14
59
Radiosity
Il metodo si fonda sulla base della radiazione termica, visto che consiste nel calcolo
dell'ammontare d'energia trasferito tra superfici. Per poter semplificare il calcolo si
suppone che tutte le superfici siano perfettamente diffusive.
Le superfici vengono solitamente discretizzate in un numero finito di quadrilateri o
triangoli.
Dopo questa frammentazione, l'ammontare dell’energia trasferita può essere
calcolato utilizzando la riflessività conosciuta delle patch, combinata con il fattore
di forma delle due patch.
Quest’ultima quantità, adimensionale, viene calcolata partendo dall'orientamento
delle due patch nello spazio 3D e può essere immaginata come la frazione della
possibile area emittente della prima patch ‘vista’ dalla seconda.
L’equazione è monocromatica e va pertanto ripetuta per ciascun colore primario.
L’algoritmo di base presenta alcuni problemi di visualizzazione, ad esempio sui
bordi degli oggetti, causati da una discretizzazione delle superfici a volte rozza.
Per migliorare la discretizzazione si adottano tecniche di discontinuity meshing
che usano la conoscenza della visibilità reciproca degli oggetti per generare una
discretizzazione più ‘intelligente’.
IUAV – dCP – corso Disegno digitale 2013-14
60
Ray tracing
IUAV – dCP – corso Disegno digitale 2013-14
61
Ray tracing + soft shadows
IUAV – dCP – corso Disegno digitale 2013-14
62
Ray tracing + soft shadows + caustics
IUAV – dCP – corso Disegno digitale 2013-14
63
Ray tracing + soft shadows + caustics + illuminaz. diffusa indiretta
IUAV – dCP – corso Disegno digitale 2013-14
64
Cinema 4D – Esempi di rendering eseguiti con varie tecniche
Illuminazione con luce infinita al 100%. Nessuna ombra.
Il cubo presenta
zone
completamente
non illuminate.
Sembra fluttuare
per la mancanza
d'ombra
riportata sul
pavimento.
E' evidente la
mancanza di
punti di
riferimento
spaziali.
IUAV – dCP – corso Disegno digitale 2013-14
65
Cinema 4D – Esempi di rendering eseguiti con varie tecniche
Illuminazione con luce infinita al 100%. Ombra morbida.
Il cubo presenta
zone non
illuminate.
L'ombra
morbida colloca
il cubo
spazialmente
nonostante la
faccia opposta
alla luce diretta
sia
completamente
indistinta.
IUAV – dCP – corso Disegno digitale 2013-14
66
Cinema 4D – Esempi di rendering eseguiti con varie tecniche
Illuminazione con luce infinita al 100%. Ombra netta..
Il cubo presenta
zone
completamente
non illuminate.
L'ombra netta
colloca il cubo
spazialmente.
IUAV – dCP – corso Disegno digitale 2013-14
67
Cinema 4D – Esempi di rendering eseguiti con varie tecniche
Illuminazione con luce infinita al 100%. Ombra area.
Il cubo presenta
zone
completamente
non illuminate.
L'ombra area
colloca il cubo
spazialmente e
consente un
maggiore
realismo. Senza
l'utilizzo di
illuminazione
globale sarebbe
necessario
inserire delle
fonti di
illuminazione
aggiuntive per
illuminare le
zone in ombra.
IUAV – dCP – corso Disegno digitale 2013-14
68
Cinema 4D – Esempi di rendering eseguiti con varie tecniche
Global Illumination: IR. Diffusione: 1, Intensità primaria: 100%
.
Il cubo risulta
ora ben
illuminato. Le
zone scure sono
scomparse. Si
nota una leggera
ombreggiatura
appena sotto il
cubo dovuta alla
smussatura dello
stesso.
Come si vede dal
risultato, il cielo
inserito emette
radianza che è
moltiplicata
dalla
Illuminazione
Globale verso
tutti gli oggetti
presenti in
scena.
IUAV – dCP – corso Disegno digitale 2013-14
69
Cinema 4D – Esempi di rendering eseguiti con varie tecniche
Global Illumination: IR. Diffusione: 2, Int. Prim.: 100%, second. 100%
Aumentando la
diffusione si
aumentano i
rimbalzi sulle
superfici. Le
zone d'ombra
vengono
schiarite
dall'intensità
secondaria.
L'intensità
primaria invece
si potrà regolare
per aumentare
la luminosità
delle superfici
esposte
direttamente
alla fonte
luminosa. Più si
aumenta la
diffusione e più
l'immagine
diverrà chiara
IUAV – dCP – corso Disegno digitale 2013-14
70
Cinema 4D – Esempi di rendering eseguiti con varie tecniche
Global Illumination: QMC. Diffusione: 1, Int. Prim.: 100%. 64 campioni
Il metodo QMC
è più brutale
poiché - a
differenza della
IR che, grazie al
prepass
calcolava dei
singoli punti
(chiave di lettura
dei chiaro-scuri)
- interviene su
ogni singolo
pixel
dell'immagine
realizzando di
fatto delle zone
ombra più
accentuate e
definite anche
se caratterizzate
da una certa
grana.
IUAV – dCP – corso Disegno digitale 2013-14
71
Cinema 4D – Esempi di rendering eseguiti con varie tecniche
Global Illumination: QMC. Diffusione: 1, Int. Prim.: 100%. 64 campioni
Anche per il
metodo QuasiMonte Carlo
aumentando la
profondità
diffusione
aumenteremo la
luminosità
globale
dell'immagine.
IUAV – dCP – corso Disegno digitale 2013-14
72
Cinema 4D – Esempi di rendering eseguiti con varie tecniche
Global Illumination: IR+QMC. Diff.: 2, Int. Prim.: 100%. 128 camp.
E' un sistema
che offre i
vantaggi di
entrambe le
tecniche:
perfetta per
esterni per le
ombre intense e
definite e i piani
bene illuminati.
IUAV – dCP – corso Disegno digitale 2013-14
73
Cinema 4D – Esempi di rendering eseguiti con varie tecniche
Global Illumination: campioni cielo. Intensità: 100%. 64 campioni.
E' da utilizzarsi
quando
l'illuminazione è
demandata solo
alla presenza
dell'oggetto
Shader Cielo di
Cinema 4D o
all'oggetto Cielo
Normale (quello
presente in
gestione luci).
L'illuminazione
proviene
dall'alto
(l’oggetto da
illuminare deve
poggiare su di
un piano).
IUAV – dCP – corso Disegno digitale 2013-14
74
Cinema 4D – Esempi di rendering eseguiti con varie tecniche
Global Illumination: campioni cielo. Intensità: 200%. 128 campioni.
Aumentando
l'intensità
primaria si
illumina
maggiormente
la scena.
Maggiore è il
numero dei
campioni e
minore sarà la
grana presente
nella scena.
IUAV – dCP – corso Disegno digitale 2013-14
75