Upload
floriana-fassari
View
218
Download
0
Embed Size (px)
Citation preview
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 1/39
La visione Realistica Prof. Maurizio Muzzupappa
La visione Realistica
1. INTRODUZIONE
Il campo della grafica tridimensionale è vasto e complesso: in questo capitolo vengono illustrate le
tecnologie che stanno alla base del processo che permette la visualizzazione dei modelli
tridimensionali, chiamato “Pipeline 3D”, che percorreremo lungo tutto il suo sviluppo: dal primo
triangolo di una scena all’ultimo pixel disegnato.
Verranno introdotti alcuni dei concetti matematici coinvolti nel rendering di una scena
tridimensionale; la natura sequenziale del rendering della grafica tridimensionale e la gran mole di
calcoli da eseguire e di dati da trattare hanno fatto sì che fosse necessario suddividere l’intero
processo in vari passaggi, detti anche fasi. Ed è appunto nella pipeline per la grafica tridimensionale
che queste diverse fasi diventano ciascuna parte di un’unica sequenza. L’incredibile carico di lavoro
alla base della realizzazione di una scena tridimensionale ha portato gli sviluppatori dei sistemi direndering per il 3D (sia per l’hardware sia per il software) a cercare con ogni mezzo di evitare di
eseguire operazioni inutili. Uno di essi ha provocatoriamente affermato che “la grafica in 3D è l’arte
di ingannare senza essere scoperti”. Questo per dire che una delle forme d’arte della grafica
tridimensionale è quella di ridurre abilmente il numero di dettagli visibili di una scena in modo da
poter ottenere prestazioni migliori, ma di farlo in modo tale che lo spettatore non si renda conto
della perdita di qualità. Il processore e l’ampiezza di banda della memoria rappresentano a tal
proposito due preziosi alleati, ragion per cui qualsiasi cosa si possa fare per preservarli va di fatto a
beneficio delle prestazioni.
Realismo dellRealismo dell’’immagineimmagine
Realismo dellRealismo dell’’immagineimmagine
Realismo dellRealismo dell’’immagineimmagine
Realismo dellRealismo dell’’immagineimmagine
- 1 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 2/39
La visione Realistica Prof. Maurizio Muzzupappa
2. LE SUPERFICI NASCOSTE
2.1.BACK-FACE CULLING (BFC)
Se un oggetto è rappresentato da un poliedro solido chiuso, le facce poligonali del poliedro
delimitano completamente il volume del solido.
Mediante l’algoritmo di BFC è possibile, molto semplicemente, ridurre il carico di lavoro richiesto
per la rimozione delle superfici nascoste eliminando tutti i poligoni il cui vettore normale è
orientato verso il semispazio opposto all’osservatore.
Il metodo per determinare se i triangoli sono back-facing è quello di controllare la normale di
ciascun triangolo. Guardando lungo la direzione del vettore di visione, tracciato dal punto di vista al
centro del triangolo da cui ha origine il vettore normale, è possibile calcolare la misura dell’angolo
che si viene a formare tra i due vettori. Lo scopo è quello di verificare se tale angolo è maggiore di
90°: in questo caso infatti, il triangolo è rivolto lontano dalla telecamera e può essere eliminato. Seinvece l’angolo è minore o uguale a 90°, il triangolo è allora visibile e non può essere scartato.
Back FaceBack Face CullingCulling
Una prima semplificazione nella determinazione
delle superfici visibili consiste nell'eliminare le
facce "posteriori" di un solido mediante l’algoritmo
del Back-Face Culling” (Bfc).
In tal modo è possibile molto semplicemente ridurre
il carico di lavoro richiesto per la rimozione delle
superfici nascoste eliminando tutti i poligoni il cui
vettore normale è orientato verso il semispazio
opposto all’osservatore.
Back FaceBack Face CullingCulling
Se un oggetto è
rappresentato da un poliedro
solido chiuso, le facce
poligonali del poliedro
delimitano completamente il
volume del solido.
- 2 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 3/39
La visione Realistica Prof. Maurizio Muzzupappa
Back FaceBack Face CullingCulling
Supponendo di aver definito i
poligoni in maniera tale che lenormali alle loro superfici siano
tutte dirette verso l’esterno del
poligono, le facce che hanno una
normale che punta verso
l’osservatore possono essere
visibili, quelle con normale che
punta via dall’osservatore
sicuramente non lo saranno.
Back FaceBack Face CullingCulling
Lo scopo è quello di verificare
se tale angolo è maggiore di
90°: in questo caso infatti, il
triangolo è rivolto lontano dalla
telecamera e può essere
eliminato. Se invece l’angolo è
minore o uguale a 90°, iltriangolo è allora visibile e non
può essere scartato.
Back FaceBack Face CullingCulling
Il procedimento di back-faceculling consente, in media di
dimezzare il tempo necessario a
fare il rendering degli oggetti solidi
dato che, sempre in media, circa la
metà delle facce di un poliedro
saranno back-facing e quindi il loro
rendering sarebbe comunque
inutile.
- 3 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 4/39
La visione Realistica Prof. Maurizio Muzzupappa
2.2. Z-BUFFERING
La tecnica più semplice per determinare quali oggetti siano visibili e quali oscurati è quella dello
z-buffering . Tale tecnica richiede la memorizzazione di un dato addizionale per ogni pixel generato:
la sua distanza dall’osservatore (coordinata z). L'area di memoria della scheda video in cui questo
dato viene memorizzata è detta z-buffer. A differenza del BFC, lo z-buffering viene utilizzato perdeterminare la superfici nascoste dovute alla sovrapposizione degli oggetti nella scena rispetto al
punto di vista dell’osservatore.
ZZ-- BufferingBuffering
ZZ--BufferingBuffering
L'algoritmo processa
singolarmente tutte i poligoni
visibili presenti nella scena.
Per ogni poligono vengono
determinati i pixel da essa
occupati.
Per ogni pixel vengono
calcolati il colore e la distanza
dall'osservatore.
- 4 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 5/39
La visione Realistica Prof. Maurizio Muzzupappa
ZZ--BufferingBuffering
Mentre nel frame buffer viene memorizzato il colore, nello z-
buffer viene memorizza la distanza dall'osservatore di ognipixel appartenente alla superficie.
ogni pixel è rappresentato con il suo colore mentre il
valore della z è dato dal numero all’interno del pixel.
Z- buffer
scena vuota
Z- buffer
dopo il I triangolo
Z- buffer
dopo il II t riangolo
I triangolo
II t riangolo
L’algoritmo processa singolarmente tutti i poligoni presenti nella scena. Per ognuno di essi viene
determinata la posizione occupata nello spazio: rispetto al piano di visualizzazione ed alla sua
distanza da esso.
Ogni volta che un nuovo poligono viene processato, per tutti i nuovi pixel occupati da questo,
vengono confrontate le distanze calcolate con quelle precedentemente memorizzate nello z-buffer .
Se la distanza del nuovo pixel è minore del valore presente nello z-buffer, questo sostituisce il punto
precedente, in quanto più vicino all'osservatore. Se invece la distanza è maggiore, il nuovo pixel
viene scartato in quanto nascosto da quello già presente sullo schermo. Con questo approccio i
poligoni possono essere rasterizzati in qualsiasi ordine. Solo quando tutti i poligoni sono stati
processati, l’immagine potrà apparire sul monitor. La tecnica dello z-buffering è molto semplice darealizzare ma richiede notevole spazio di memoria addizionale. Inoltre devono essere considerati
tutti gli oggetti visibili nella scena e risulta necessario generare anche i pixel corrispondenti ad
oggetti completamente oscurati. Lo z-buffering è generalmente realizzato mediante hardware
dedicato. Molte delle comuni schede video installate sui PC implementano lo z-buffer , rendendone
estremamente veloce e flessibile l'utilizzo. Le schede video perciò mettono a disposizione una
memoria dedicata con la stessa risoluzione del frame buffer e con una profondità consistente con la
risoluzione che si vuole ottenere per le distanze.
Tra le architetture per il 3D in concorrenza per quanto riguarda il grande mercato, c’è una
differenza notevole per quanto riguarda i metodi di z-buffering . Una tecnica di z-buffering abbastanza rudimentale è il cosiddetto “algoritmo del Pittore”, che comincia dal fondo della scena e
disegna tutto ciò che compare al suo interno, compreso il rendering pieno di oggetti che potrebberoessere nascosti da altri oggetti più vicini alla telecamera. Nella maggioranza dei casi, questo
algoritmo riesce a ordinare in maniera corretta le profondità, ma non è efficiente e può provocare
alcuni errori di disegno là dove i triangoli si sovrappongono l’uno con l’altro. Inoltre, è decisamente
dispendioso dal punto dì vista delle volte in cui per un determinato pixel occorre effettuare il
rendering .
- 5 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 6/39
La visione Realistica Prof. Maurizio Muzzupappa
3. INTERAZIONE LUCE -MATERIA
Nella esperienza quotidiana, il modo in cui percepiamo il mondo circostante dipende in modo
diretto dagli effetti dell'interazione tra luce e materia in quanto la modalità percettiva prevalente è
quella basata sulla visione. Se gli oggetti che ci circondano non fossero direttamente oindirettamente illuminati non sarebbero percepibili dal nostro senso della vista. Per una persona che
si trovi in una stanza completamente oscura, nel buio più profondo. qualunque oggetto presente
all'interno della stanza non risulterà visibile. Al momento in cui una luce è accesa oppure la stanza è
illuminata dai raggi solari la situazione cambia radicalmente e l'osservatore può rendersi conto della
forma, del colore e di altre caratteristiche come la rugosità,. il tipo di materiale. la lucentezza degli
oggetti che lo circondano. Ciò avviene grazie al modo in cui vengono interpretati, a livello
cognitivo, gli stimoli sensoriali dovuti alle differenti intensità della radiazione luminosa riflessa.
Ove si voglia pervenire, tramite le tecniche della computer graphics tridimensionale, alla
visualizzazione realistica di una scena sintetica, è quindi indispensabile modellare il comportamento
della radiazione luminosa. A tal fine è necessario definire modelli di illuminazione che riproducano
al meglio le condizioni che si verificano nel mondo reale. I risultati raggiunti dalla graficacosiddetta fotorealistica negli ultimi venti - trenta anni rendono possibile la generazione di
immagini sintetiche pressoché indistinguibili da fotografie di scene reali.
Esistono approcci semplificati al problema, che costituiscono approssimazioni spinte del
comportamento fisico della radiazione luminosa ma permettono tuttavia di ottenere risultati
soddisfacenti con carichi computazionali accettabili ed algoritmi adatti ad una realizzazione assistita
dall'hardware grafico.
La luce e le superficiLa luce e le superfici
La radiazione che incide su un corpo solido
può essere in parte :
1. assorbita;
2. trasmessa attraverso l'oggetto (trasparente);
3. riflessa, sia in modo diffuso che speculare.
La radiazione assorbitaLa radiazione assorbita
La radiazione assorbita viene trasformata in calore.
Dal punto di vista ottico-visivo, se tutta la radiazione
incidente fosse assorbita, il corpo non sarebbe
visibile, cioè si avrebbe a che fare con un "corpo
nero".
La radiazione assorbita è quella che meno ci interessa,
anche se è utile osservare che i corpi non assorbono in
modo uguale su tutte le lunghezze d'onda incidenti.
ASSORBIMENTO
100% 50% 0%
La radiazione assorbitaLa radiazione assorbita
La radiazione incidente può essere in parte trasmessa
dentro il solido quando quest'ultimo è trasparente.
La radiazione trasmessaLa radiazione trasmessa
- 6 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 7/39
La visione Realistica Prof. Maurizio Muzzupappa
La radiazione trasmessaLa radiazione trasmessa
La TrasparenzaLa Trasparenza
La radiazione riflessaLa radiazione riflessa
La riflessione della luce su una superficie è data da due
componenti: diffusiva e speculare.
La radiazione diffusa si può pensare come assorbita dallo
strato esterno del corpo, per essere poi riemessa in tutte le
direzioni.
La radiazione riflessa specularmente non attraversa la
superficie esterna, ma viene rimandata immediatamente nel
piano individuato dalla normale alla superficie nel punto
considerato e dalla direzione della radiazione incidente.
La radiazione riflessaLa radiazione riflessa
La componente di riflessione
speculare può essere osservata
su superfici lucide. E’ definito
come l'highlight.
L'highlight è causato dalla
riflessione speculare, mentre la
riflessione sul resto della
superficie è dovuta alla
riflessione diffusiva. Se ci
spostiamo e guardiamo
l’oggetto da un'altra
angolazione possiamo notare
che anche l'highlight si
muove.
matto, opaco liscio, lucido
La radiazione riflessaLa radiazione riflessa
La Diffusione è dominante su una superficie con tante piccole asperità. La luce viene
riflessa in tutte le direzioni. La riflessione Speculare è tipica delle superfici lisce. Questo
implica che i raggi dispersi da ciascun punto della superficie siano diretti quasi nella
stessa direzione, invece che essere diffusi in modo sparpagliato.
La radiazione riflessaLa radiazione riflessa
INTERRIFLESSIONE SPECULARE (highlight)
assente media massima
HighlightHighlight
La radiazione riflessaLa radiazione riflessa
Oggetti con una forte
componente speculare,
quando sono inseriti
all’interno di una scena
riflettono anche gli
oggetti circostanti.
La radiazione riflessaLa radiazione riflessa
In CG si possonodefinire le proprietà diuna superficiespecificando ilcontributo delle diversecomponenti di luceriflessa.
La radiazione riflessaLa radiazione riflessa
- 7 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 8/39
La visione Realistica Prof. Maurizio Muzzupappa
4.I MODELLI DI RIFLESSIONE DELLA LUCE
Dal punto di vista della fisica della radiazione elettromagnetica e della sua interazione con i diversi
materiali un modello di illuminazione è una formulazione matematica dell'equazione del trasporto
dell'energia luminosa. Dal punto di vista della computer graphics è un'equazione che descrive comeun punto di una superficie della scena sintetica è illuminato in funzione della sua posizione nello
spazio, della posizione delle sorgenti luminose (sia dirette che indirette) presenti nella scena, della
posizione dell'osservatore e delle caratteristiche del materiale di cui sono formati gli oggetti che
costituiscono la scena.
A un'equazione che risolva questo problema si da il nome di equazione di illuminazione. Al
processo di calcolo dell'equazione di illuminazione dei vari punti dell'oggetto ci si riferisce con due
termini distinti:
lighting , se si fa riferimento al calcolo del bilancio luminoso, ossia della quantità di
radiazione luminosa che incide su ogni determinata posizione dello spazio (ad esempio su
ogni porzione di superficie degli oggetti nella scena);
shading , se si fa riferimento al calcolo del colore apparente risultante dall'esposizione diognuna di queste porzioni alla radiazione luminosa incidente.
I modelli di riflessione in CGI modelli di riflessione in CG
Definire un modello di illuminazione significascegliere pertanto un’equazione per calcolarel'intensità luminosa in un punto P generico dellospazio, in funzione dell'intensità della radiazioneincidente e delle caratteristiche geometriche e fisichedella superficie.
L'obiettivo di un modello di illuminazione è quello dicalcolare l'intensità luminosa in un punto della scena,data una certa configurazione delle sorgenti luminose.
Per realizzare immagini di sintesi bisogna conoscere la luce che arriva sul piano immagine
simulante la retina dell'occhio umano. Questa radiazione luminosa potrà provenire direttamentedalle sorgenti di illuminazione (luce diretta), o dagli oggetti presenti nella scena che stiamo
osservando (luce indiretta). I concetti di illuminazione diretta e indiretta sono considerati
relativamente al soggetto in questione.
Se per esempio consideriamo l'occhio umano:
la luce diretta è quella che proviene dalle sorgenti luminose (lampade e/o
sole) presenti nella scena; la luce indiretta è tutta l'altra luce che raggiunge la
retina al fine di comporre un'immagine.
Se invece il soggetto è una sedia parzialmente accomodata sotto ad un tavolo sul cui centro
c'è una lampadina accesa:
parte dello schienale è direttamente illuminato perché colpito dalla luce
diretta, quella proveniente dalla lampadina; mentre il sedile in ombra sotto il
tavolo è visibile perché illuminato indirettamente dalle riflessioni multiple
dell'ambiente circostante.
- 8 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 9/39
La visione Realistica Prof. Maurizio Muzzupappa
Ipotizzare che l'aspetto di un oggetto sia esclusivamente il risultato della riflessione e/o trasmissione
della luce proveniente direttamente dalle sorgenti di illuminazione sull'oggetto considerato è
un'approssimazione grossolana che non ci consente di formulare un modello fotorealisticamente
corretto. Sia nella simulazione di ambienti interni, sia di quelli esterni, l'oggetto risente anche della
luce indiretta proveniente dagli altri corpi. Inoltre la particolare forma di un oggetto può influenzare
la sua illuminazione indiretta. Questo succede quando una parte della luce indiretta di un oggetto ècausata dalla riflessione e/o dalla trasmissione della luce diretta su se stesso.
I modelli di illuminazione utilizzati nella sintesi di immagini sono stati formulati dal 1975 in poi,
(ad eccezione del modello di Lambert), con l'avvento dei primi Personal Computer dotati di monitor
grafico. I modelli di illuminazione sono suddivisi in due filoni principali:
- i modelli formulati su base fisica
- i modelli formulati su base empirica.
I primi basano la loro teoria su precise considerazioni di carattere fisico, mentre i secondi si
preoccupano solo di generare belle immagini. Spesso i modelli empirici generano immagini che
sembrano più belle e realistiche di quelli fisici.
La ragione della relativa affermazione dei modelli empirici è da attribuire a tre fattori principali:
• utilizzano dati per la definizione di luci e di materiali avulsi dalla realtà fisica, ma per questipiù facili da formulare o da reperire;
• hanno basso costo computazionale e quindi possono essere calcolati velocemente;
• agiscono negli spazi colorimetrici dei dispositivi di visualizzazione (monitor grafici o
stampanti), anziché nello spazio reale della radiometria, ignorando così uno dei problemi
fondamentali che sta alla base della sintesi delle immagini: la percezione umana non si basa
solo sulla retina, ma anche su fenomeni psico-filosofici che risiedono nella corteccia
celebrale.
L'utilizzo del calcolo automatico ha consentito di ampliare i modelli di illuminazione anche in
ambienti geometricamente molto complessi. Questo ha portato alla suddivisione del problema in
due livelli differenti:
• analisi e formulazione del modello di riflessione e/ trasmissione della luce nelle immediate
prossimità delle superfici interessate a livello microscopico;
• analisi e formulazione del modello di diffusione della luce in un ambiente reale
geometricamente complesso ad un livello che possiamo definire macroscopico.
4.1. IL MODELLO DI ILLUMINAZIONE DI LAMBERT
Nel 1760 lo scienziato tedesco J.H.Lambert nel suo " Photometria sive de mensura de gratibusluminis, colurum et umbrae" formulava il primo modello di illuminazione nella scienza. Sebbene
non fossero ancora state formulate le basi per gli indici di misura radiometrici e fotometrici,
Lambert progettò le basi per la formulazione dei classici "modelli di illuminazione", utilizzatinell'ambito della sintesi di immagini oltre duecento anni dopo. Il modello lambertiano ipotizza una
superficie ideale perfettamente diffondente, cioè senza alcuna componente speculare. La luce è
riflessa in tutte le direzioni dell'emisfera con uguale intensità. L'intensità della luce riflessa ( I d ) è
proporzionale all'intensità della luce incidente ( I L) e al coseno dell'angolo tra la normale alla
superficie ( N ) e il raggio incidente.
- 9 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 10/39
La visione Realistica Prof. Maurizio Muzzupappa
MODELLO DI RIFLESSIONE DIFFUSAMODELLO DI RIFLESSIONE DIFFUSA
DA SORGENTE PUNTIFORMEDA SORGENTE PUNTIFORME
Il fenomeno è regolato dalla legge del coseno di Lambert.
Se un corpo è un diffusore perfetto ed I L è l’intensità
luminosa incidente nel punto P della sua superficie, l’intensità
di radiazione diffusa sarà proporzionale al coseno dell'angolo
tra la normale alla superficie nel punto e la direzione di
incidenza L
I d ( p) = K d I L cos θ + K a I a
MODELLO DI RIFLESSIONE DIFFUSAMODELLO DI RIFLESSIONE DIFFUSA
DA SORGENTE PUNTIFORMEDA SORGENTE PUNTIFORME
Il modello di Lambert viene espresso mediante la seguente formula:
I d (p)= K d I L cosθ
in cui:
I d è l'intensità dei raggi riflessi in qualsiasi direzione
I L è l'intensità del raggio di luce incidente
K d è il coefficiente di riflettanza diffusa compreso tra 0 e 1. Dipende dal materiale dell'oggetto illuminato.
θ è l'angolo compreso tra la normale N alla superficie nel punto P considerato e il raggio incidente.
cosθ deve essere il massimo tra cosθ e 0. Quindi i valori presi in considerazione sono solo quelli maggiori o
uguali a zero.
- 10 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 11/39
La visione Realistica Prof. Maurizio Muzzupappa
I valori del coseno che vengono presi in considerazione sono solo i valori positivi e lo zero, mentre
al posto dei valori negativi viene preso lo zero. La limitazione imposta per i valori del coseno serve
per evitare che un corpo opaco è illuminato quando la sorgente si trova dietro ad esso.
4.2. MODELLO DI ILLUMINAZIONE DI PHONG
Il modello di illuminazione di Phong è nato nel 1975. In questo modello viene introdotto un
concetto importante: la riflessione è scomposta nelle due componenti diffusiva e speculare.
Nel modello di illuminazione di Phong si cerca di simulare il comportamento delle superfici
speculari ed è per questo motivo che nasce l'esigenza di considerare, oltre alla riflessione diffusiva,
anche quella speculare.
La riflessione speculare può essere osservata su superfici lucide. Supponiamo di illuminare una
mela rossa con una luce bianca: la "macchia" bianca che si può osservare sulla superficie della mela
è l'highlight . L'highlight è causato dalla riflessione speculare, mentre la riflessione sul resto della
mela è dovuta alla riflessione diffusiva. Come detto sopra, nel punto dell'highlight , la mela non è
più rossa, ma bianca, ha preso cioè il colore della luce incidente.
Se ci spostiamo e guardiamo la mela da un'altra angolazione possiamo notare che anche l'highlight si sposta. Questo è dovuto al fatto che le superfici lucide riflettono la luce in modo diverso in base
alla direzione. Se invece prendiamo una superficie perfettamente lucida, come uno specchio
perfetto, la luce è riflessa solo nella direzione R che è speculare alla direzione del raggio incidente
I L rispetto alla direzione della normale N . Quindi l'osservatore può vedere la luce riflessa
specularmente da uno specchio solo quando l'angolo φ è zero, dove φ è l'angolo tra R e la direzione
del punto di vista V . Phong ha sviluppato un modello di illuminazione per descrivere riflettori non
perfetti come ad esempio una mela. In questo modello si assume che: la massima riflettanza
speculare si ha quando φ è zero (cioè l'angolo tra R e la direzione del punto di vista V) e
diminuisce quando φ aumenta.
I s = k s I L cosn φ .
Questa rapida diminuzione della riflessione speculare è approssimata da cosnφ , dove n è
l'esponente della riflessione speculare. Il valore di n può variare da 1 a diverse centinaia a seconda
del materiale della superficie che si vuole simulare.
Se si pone:
n =1 ottiene una lenta attenuazione;
n uguale ad un valore molto alto simula un netto e ben localizzato highlight ; n = infinito simula un riflettore perfetto.
Per quanto riguarda il valore di cosφ si prende il massimo valore tra zero e l'effettivo valore di
cos( φ ), cioè i valori negativi si considerano come zero.
- 11 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 12/39
La visione Realistica Prof. Maurizio Muzzupappa
MODELLO DI RIFLESSIONE SPECULARE DAMODELLO DI RIFLESSIONE SPECULARE DA
SORGENTE PUNTIFORMESORGENTE PUNTIFORME
La quantità di energia riflessa specularmente dipende
fortemente dalla lunghezza d'onda della radiazione
incidente e dall'angolo tra direzione di riflessione e
direzione di vista
I s ( p) = K s I L cos n Φ
MODELLO DI RIFLESSIONE SPECULARE DAMODELLO DI RIFLESSIONE SPECULARE DASORGENTE PUNTIFORMESORGENTE PUNTIFORME
Riflessione
diffusaRiflessione
speculare
Se si utilizzano le due espressioni viste per radiazioni riflesse diffuse e riflesse specularmente
giacché sono effetti che possono sovrapporsi, in quanto gli oggetti si comportano normalmente sia
come diffusori che come specchi si giunge ad un'espressione definitiva:
I = I L(k s cosnφ + k d cosθ ) + k a I a
dove I a è la luce ambiente che considera che in genere è presente anche un'illuminazione diffusa
dovuta all'ambiente circostante. In altri termini si suppone che ogni corpo diffonda una frazionedella luminosità dell'ambiente in cui è immerso. Si introduce pertanto un termine additivo nel quale
si tiene conto di una luminosità media ambiente e di una costante di diffusività dell'ambiente k a caratteristiche dell'ambiente e della scena:
- 12 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 13/39
La visione Realistica Prof. Maurizio Muzzupappa
Modello di riflessione diModello di riflessione di PhongPhong
Le due espressioni viste per le radiazioni riflesse diffuse e le
radiazioni riflesse specularmente, possono sovrapporsi, inquanto gli oggetti si comportano normalmente sia come
diffusori che come specchi.
Il livello di realismo permesso dai diversi modelli di illuminazione varia in modo notevole, così
come varia la complessità computazionale ad essi associata. Più sofisticato è il modello, maggiore è
il suo costo computazionale, tanto che, in via del tutto approssimativa, si può affermare che il costo
computazionale di un modello di illuminazione aumenta in modo esponenziale all’aumentare del
realismo. Nella scelta di un particolare modello di illuminazione si deve dunque valutare quale sia il
più alto livello di realismo ottenibile ad un costo computazionale sostenibile dalla particolare
applicazione. Le entità in gioco sono :
• la potenza di calcolo disponibile;
• la complessità media delle scene trattate, misurata in termini del numero di poligoni;• la necessità di produrre immagini in tempo reale;
• il numero totale di immagini da produrre.
5. LE TEXTURE
Il rendering fotorealistico è spesso considerato, soprattutto nella progettazione meccanica, un
optional, un lavoro per palati fini, che serve più a "vendere" ciò che si è progettato piuttosto che
verificarne e provarne la bontà. Oggi, sempre di più, la possibilità di verificare nei modelli virtuali
non solo la forma ma anche l’aspetto superficiale, il comportamento delle superfici nei diversi
ambienti e con illuminazioni diverse ha imposto nuove casistiche e nuove forme di progetto. Una di
queste consiste nell’applicare ad ogni oggetto la pelle appropriata (che viene chiamata materiale).Definire le caratteristiche superficiali dei materiali degli oggetti rappresentati nella scena è uno dei
compiti principali per realizzare un rendering efficace. Così come vengono definiti da un sistema
CAD, gli oggetti sono costituiti da un materiale piatto (un solo colore uniforme). Nella realtà non è
così, il colore di una qualsiasi superficie è molto più complesso e per questo ci aiuta la gestione dei
materiali. Un materiale non è altro che il colore (o l'immagine) da associare ad una superficie,
insieme ad alcuni parametri che lo rendono più similare alla realtà.
I materiali hanno in genere come parametri il colore che deve apparire come pelle sulla superficie,
ma anche la lucentezza, l'autoilluminazione, l'irregolarità, la rugosità, la trasparenza, la riflessione e,
in alcuni casi, la rifrazione e la rugosità.
Per simulare tutti questi parametri superficiali si possono utilizzare le cosiddette tessiture o texture.
- 13 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 14/39
La visione Realistica Prof. Maurizio Muzzupappa
Ci sono due livelli di credibilità: quellainerente ai modelli e quella riguardante le
superfici.
Le texture vengono utilizzate per rendere
realistiche le superfici dei modelli 3D,
evidenziando i dettagli e fornendo
all’oggetto quelle caratteristiche fisiche
tipiche del mondo reale.
LeLe TextureTexture
Scena senza le texture Scena con letexture
LeLe TextureTexture
Esse sono di due tipi:
mappate: la texture mapping (o mappatura delle tessiture) consiste nell’applicare una
immagine sull’oggetto. In questo caso è molto importante calcolare bene la dimensione
dell’immagine in quanto una texture troppo grande avrebbe degli effetti negativi sul
rendering finale, mentre una troppo piccola e poi ingrandita evidenzierebbe i pixel che la
compongono.
procedurali: le texture procedurali sono calcolate dal computer e fanno sì che l’oggetto acui vengono applicate appaia come ritagliato da un blocco di materiale scelto. Solitamente
questo tipo di texture riproduce materiali come pietre e legno. Una texture di questo tipo
occupa sempre poca memoria ed è molto efficiente in termini di rendering.
5.1. IL TEXURE MAPPING
La tecnica della texture mapping fu iniziata da Catmull e rifinita da Blinn e Newell: in questo
approccio l’immagine è chiamata texture map, essa risiede in uno spazio di coordinate (u,v) e i suoi
elementi individuali sono chiamati texel .
- 14 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 15/39
La visione Realistica Prof. Maurizio Muzzupappa
TextureTexture campionatecampionate
Invece di usare un singolo colore per il materiale è possibile
utilizzare un’immagine. Ad esempio, è possibile usareimmagini scansionate, oppure è possibile creare pattern
mediante programmi di fotoritocco o utilizzarre delle
immagini di librerie di materiali o qualsiasi altra sorgente di
immagini bitmap.
TextureTexture campionatecampionate
L’immagine sarà applicata al materiale e ripetuta nelle tre
direzioni (effetto mattonella) secondo la scala impostata.
Il texture mapping è costituito fondamentalmente da cinque passaggi:
1. Calcolo della collocazione oggettiva nello spazio del pixel su cui effettuare l’operazione
di texturing .2. Utilizzo di una funzione di proiezione per determinare le coordinate esatte (u, v) della
texture.
3. Utilizzo delle funzioni di corrispondenza per individuare il texel .4. Applicazione della funzione per la trasformazione del valore.
5. Modifica del valore dell’equazione di illuminazione.
Quando la superficie è un poligono, come avviene nell’accelerazione grafica, è comune assegnare le
coordinate della texture map direttamente ai vertici di tale poligono. Le texture campionate (bitmap)
che possono essere applicate ad una superficie possono essere:
• Mappe di colore: definiscono i colori di superficie, come nel caso di immagini dipinte su un
oggetto. Ad esempio, è possibile applicare immagine di un motivo a scacchiera ad una
superficie piatta orizzontale per creare l’effetto di un pavimento.
• Mappe di riflessione: simulano una scena riflessa sulla superficie di un oggetto lucido. Sono
dette anche mappe di ambiente.
- 15 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 16/39
La visione Realistica Prof. Maurizio Muzzupappa
• Mappe di specularità: simulano la lucentezza, cioè è la proprietà di un oggetto di schiarirsi
quando è illuminato da una fonte luminosa ortogonalmente, questa proprietà è molto accentuata
nei metalli, mentre è nulla o bassa nel calcestruzzo o nello stucco, per esempio.
• Mappe di opacità: specificano le aree di opacità e trasparenza. Ad esempio, se l’immagine
bitmap utilizzata è un cerchio nero al centro di un rettangolo bianco e tale immagine viene
applicata come mappa di opacità, la superficie viene visualizzata con un foro nel punto in cui ilcerchio viene mappato sull’oggetto.
• Mappe di contrasto (bump map): creano un effetto a sbalzo o a bassorilievo.
colore diffusione specularità bump
LeLe TextureTexture
LeLe TextureTexture
Mappa di opacità Mappa di diffusione
La grande popolarità e diffusione del texture mapping negli anni recenti è dovuta anche e
soprattutto al larghissimo uso che se ne fa nel campo dei videogiochi. La struttura di un videogioco
è infatti caratterizzata dall'uso di geometrie molto semplici, con un livello di approssimazione delle
forme molto basso, ma dotate di sofisticate tessiture che permettono di ottenere, soprattutto su
dispositivi grafici evoluti risultati sorprendenti.
Su una superficie è possibile applicare una combinazione di mappe. Ad esempio, è possibile
applicare ad una parete a pannelli una bitmap a trama di legno sia come mappa di contrasto che
come mappa di composizione per conferire alla parete la “consistenza” ed il colore del legno, quindi
applicare una mappa di opacità per create un foro nella parete.
L’immagine bitmap acquisita o disegnata, è tipicamente una immagine piana che dovrà essere
applicata sul modello. La modalità di applicazione di una texture varia a secondo della forma della
- 16 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 17/39
La visione Realistica Prof. Maurizio Muzzupappa
superficie che si vuole caratterizzare; pertanto bisognerà adottare tipi diversi di mappature
(par.5.1.2).
5.1.1. BUMP E DISPLACEMENT MAPPING
Se il texture mapping è un metodo molto efficace per simulare con un ottimo rapporto qualità/costovariazioni ad alta frequenza del colore all'interno di una primitiva geometrica, rimane del tutto
aperto il problema della simulazione della rugosità di una superficie, ossia, di variazioni ad alta
frequenza del campo delle normali: se la variazione di rugosità ha una scala molto più fine della
geometria è insensato modificare il modello geometrico per rincorrere il particolare.
La tecnica che consente di dare un aspetto rugoso alla superficie, senza la necessità di rimodellare
geometricamente l'oggetto, è nota come tecnica di bump mapping . I texel in questo caso sono
utilizzati ad uno stadio diverso rispetto alla tessitura, precisamente prima del calcolo dell'equazione
di illuminazione. Ogni texel definisce uno spostamento della normale alla superficie ( ∆ x, ∆ y, ∆ z);tale valore è utilizzato per alterare localmente la normale alla superficie
Gli avvallamenti ed i rilievi che vengono messi in evidenza utilizzando una bump map sono,
ovviamente, solo artefatti visivi in quanto la geometria sottostante rimane totalmente inalterata. Per
questo motivo quando si utilizza questa tecnica si deve porre molta attenzione nella definizione deiparametri che si specificano, specialmente il fattore di scala della lunghezza della perturbazione
delle normali. Sulla silhouette dell'oggetto, infatti, sarà ben visibile il contorno netto frutto esclusivo
della geometria, quindi la rugosità deve essere veramente poco accentuata per non generare un
effetto finale non realistico
La rugosità o il dettaglio geometrico di un oggetto possono essere meglio apprezzati se si adotta una
tecnica di displacement mapping . In questo caso i texel non rappresentano perturbazioni dalle
normali alla superficie in esame quanto piuttosto valori "offset" da sommare alle posizioni
geometriche corrispondenti per modificarne la locazione. In pratica, il sottosistema di rendering
modifica effettivamente la forma della primitiva in esame spostando i punti sulla sua superficie
Anche se il displacement mapping è eseguito in fase di rendering e quindi non modifica stabilmente
la geometria della scena, l'effetto ottenuto è decisamente accattivante in quanto, rispetto al bumpmapping , anche la silhouette del modello mostra le corrette deformazioni.
- 17 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 18/39
La visione Realistica Prof. Maurizio Muzzupappa
LeLe TextureTexture
L’aggiunta di particolari tramite una texture non modifica l’aspetto
geometrico; la superficie appare comunque piatta. Mediante Bump Map è possibile
simulare effetti di bassorilievo (o rugosità) sulla superficie.
Bump MAP
5.1.2. LA MAPPATURA DELLE TEXTURE CAMPIONATE
TextureTexture campionatecampionate
Quattro sono i principali metodi di mappatura:
• Planare
• Cilindrica
• Sferica• Cubica
texture
- 18 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 19/39
La visione Realistica Prof. Maurizio Muzzupappa
mappatura piana mappatura cilindrica
mappatura sferica mappatura cubica
Nella mappatura planare, le immagini vengono proiettate sull’oggetto in direzione normale ad unasse specifico (x, y, z).
TextureTexture campionatecampionate
La mappatura planare
TextureTexture campionatecampionate
Con la mappatura cilindrica, l’immagine viene avvolta intorno all’asse selezionato.
- 19 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 20/39
La visione Realistica Prof. Maurizio Muzzupappa
TextureTexture campionatecampionate
La mappatura cilindrica
TextureTexture campionatecampionate
La mappatura sferica permette di poter avvolgere una texture piana intorno ad un oggetto
strutturalmente diverso. Questo tipo di mappatura necessita di particolare attenzione, poiché le
dimensioni della sfera vanno a stringere verso l’alto e verso il basso. A causa di questa
“caratteristica” possono generarsi effetti indesiderati ed irregolari. Le mappe sferiche, funzionanomeglio se la parte alta e quella bassa sono occupate da un colore uniforme, in modo che
“l’allungamento” della texture non sia visibile.
TextureTexture campionatecampionate
La mappatura sferica
TextureTexture campionatecampionate
La mappatura cubica è simile a quella planare, ma con una sola eccezione: è impossibile
selezionare l’asse di mappatura. L’immagine, infatti, viene proiettata su tutti gli assi
contemporaneamente.
La mappatura cubica
TextureTexture campionatecampionate
- 20 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 21/39
La visione Realistica Prof. Maurizio Muzzupappa
La mappatura UV
TextureTexture campionatecampionate
5.2. LE TEXTURE PROCEDURALI
Le texture procedurali vengono invece create in base a calcoli matematici e non mediante mappe
fotografiche. Sono generalmente funzioni frattali che, al variare di alcuni parametri, permettono di
riprodurre l'aspetto di svariati materiali. Il vantaggio rispetto alle textures ricavate da fotografie è
costituito dal minor impiego di memoria in fase di rendering.
TextureTexture proceduraliprocedurali
Marmo
TextureTexture proceduraliprocedurali
Granito
- 21 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 22/39
La visione Realistica Prof. Maurizio Muzzupappa
Legno
TextureTexture proceduraliprocedurali
Mattonella
TextureTexture proceduraliprocedurali
6. LE LUCI IN CG
Quattro passi fondamentaliQuattro passi fondamentali
per eseguire unper eseguire un renderingrendering
• Assegnare i materiali
• Definire le sorgenti di luce
• Impostare l’ambiente
• Eseguire il Rendering
Le luci in CGLe luci in CG
Dovendo modellare una scena occorre non solomodellarne la geometria, ma anche gestire
opportunamente le sorgenti di luce.
Queste possono essere poste all'infinito o in un
punto al finito. Di conseguenza i raggi luminosi
saranno paralleli o divergenti.
Le luci in CGLe luci in CG
Le sorgenti di luce possono essere puntiformi o
estese. La quantità di radiazione può essere emessa in
tutte direzioni; oppure si può pensare che la
radiazione emessa dalla sorgente abbia una direzionepreferenziale. Si parla in questo caso di sorgenti
direzionali.
Si possono poi avere modelli con una sola sorgente o
con un numero arbitrario di sorgenti.
Le luci in CGLe luci in CG
I programmi di rendering gestiscono differenti
tipi di sorgenti luminose:
La luce ambienteLa luce ambiente, cioè che illumina tutta la
scena e permette di dare chiarezza alla scena, ma
comunque non permette di dare effetti avanzati
di sfumature ed ombre
- 22 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 23/39
La visione Realistica Prof. Maurizio Muzzupappa
Le luci in CGLe luci in CG
I programmi di rendering gestiscono differenti
tipi di sorgenti luminose:
La luce spotLa luce spot, che può essere illustrata come il
fascio di luce uscente da un faro di un auto, cioè
che genera un cono di luce. Essa ha poi delle
altre proprietà, cioè una zona in cui
l'illuminazione è piena, ed una in cui sfuma
dall'illuminazione piena all'ombra.
Le luci in CGLe luci in CG
I programmi di rendering gestiscono differentitipi di sorgenti luminose:
La luceLa luce omnidirezionaleomnidirezionale ((pointpoint)), ossia una
sorgente luminosa puntuale dal quale partono i
raggi in tutte le direzioni nello spazio.
Posizionata tale sorgente in un punto, i raggi si
diffonderanno nello spazio radialmente.
Le luci in CGLe luci in CG
I programmi di rendering gestiscono differenti
tipi di sorgenti luminose:
La luce a raggi paralleliLa luce a raggi paralleli, ossia una direzione da
cui provengono, parallelamente, i raggi solari.
Le luci in CGLe luci in CG
Luce
spotLuce pointLuce distant
Le luci in CGLe luci in CG
Ogni tipologia ha il suo utilizzo:
• per simulare l'illuminazione di un faro si usa una
luce spot (proiettore),
• per simulare una lampadina, si usa una sorgenteluminosa omnidirezionale
• per simulare il sole, si usa una sorgente luminosa
a raggi paralleli.
• si usa la luce ambiente per attenuare le ombre
derivanti dall'uso delle altre tipologie di luci, che
altrimenti sarebbero troppo marcate e poco
realistiche (effetto penombra).
Quattro passi fondamentaliQuattro passi fondamentali
per eseguire unper eseguire un renderingrendering
• Assegnare i materiali
• Definire le sorgenti di luce
• Impostare l’ambiente
• Eseguire il Rendering
Impostazione della scenaImpostazione della scena
Impostazione della scenaImpostazione della scena
- 23 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 24/39
La visione Realistica Prof. Maurizio Muzzupappa
Impostazione della scenaImpostazione della scena
Impostazione della scenaImpostazione della scena
Impostazione della scenaImpostazione della scena
Impostazione della scenaImpostazione della scena
Impostazione della scenaImpostazione della scena
Impostazione della scenaImpostazione della scena
Impostazione della scenaImpostazione della scena
- 24 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 25/39
La visione Realistica Prof. Maurizio Muzzupappa
7. GLI ALGORITMI DI SHADING
La scelta del modello di illuminazione da utilizzare non risolve completamente il problema dello
shading, ovvero del calcolo del colore da attribuire ad ogni pixel dell'immagine finale. Se il modello
descrive come deve essere calcolata l'interazione tra luce e materia rimane da identificare dove
calcolare l'equazione d'illuminazione.L’ approccio completo consiste nell'effettuare il calcolo per ogni pixel (addirittura anche più volte
per ogni pixel) dell'immagine finale (soluzione che viene adottata da metodi non interattivi il cui
scopo consiste nell'ottenere l’immagine migliore possibile).
Obiettivo degli algoritmi di shading è, dunque, quello di determinare per ogni punto dell’immagine
il suo colore, che è funzione del colore della superficie dell’oggetto e della sua orientazione, della
posizione delle luci e (in alcuni casi) della riflessione indiretta della luce da parte di altre superfici.
Nella fase di rasterizzazione, per ciascuna linea di scansione viene identificata una coppia di pixel
(intersezione tra la scanline e i lati del triangolo). Il rasterizzatore attribuirà allo spazio fra questi
due pixel una colorazione, utilizzando degli appositi algoritmi, che possono essere relativamente
semplici (Flat e Gouraud) oppure molto più complessi (Phong), richiedendo perciò l’impiego di
maggiori risorse.Le tre tecniche di ombreggiatura più diffuse sono denominate Flat, Gouraud e Phong e agiscono
rispettivamente sui triangoli, sui vertici e sui pixel.
Algoritmi diAlgoritmi di ShadingShading
Flat Shading
Gouraud Shading
Phong Shading
Normalmente l'illuminazione in un punto di una superficie
non viene calcolata per tutti i pixel di una superficie
visibile, ma solo per un insieme più ristretto di puntisignificativi.
7.1 FLAT SHADING
E’ il più semplice dei tre modelli. In questo caso vengono rilevati i valori di colore dei tre vertici diun triangolo (sempre presupponendo che le primitive in questione siano dei triangoli) e ne ricava
uno di media (o nel caso di Direct3D ne sceglie arbitrariamente uno dei tre), che viene poi utilizzato
per assegnare l’ombreggiatura all’intero triangolo. Si tratta di un metodo molto economico in
termini di calcoli, ma il prezzo che ci si trova a pagare in termini di effetto visivo è costituito dalla
chiara visibilità dei singoli triangoli, spezzando quindi l’illusione di ricavare, appunto da più
triangoli, un’unica superficie. Per migliorare l’effetto visivo è necessario aumentare il numero di
triangoli che compongono l’oggetto.
- 25 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 26/39
La visione Realistica Prof. Maurizio Muzzupappa
FlatFlat ShadingShading
Il flat shading è il più semplice di tutti: si colora una
faccia con un colore.
Per migliorare la resa visiva è necessario aumentare
il numero di poligoni che compongono la superficie
dell’oggetto.
FlatFlat ShadingShading
Vantaggi: semplicità
e velocità
Svantaggi: Si
percepiscono
distintamente i
poligoni.La normale, infatti,
varia e quindi anche
il colore associato a
triangoli vicini.
7.2. GOURAUD SHADING
Il nome di questo metodo si deve al suo stesso inventore Henri Gouraud, che lo ha sviluppato nel
1971. In linea di massima è il tipo di ombreggiatura più diffuso per quanto riguarda l’hardware per
la grafica tridimensionale destinato al grande mercato e questo soprattutto perché garantisce
un’ottima qualità visiva con un volume di calcoli tutto sommato ridotto. Il Gourand Shading è un
algoritmo di ombreggiatura che ha la duplice funzionalità di rendere realistica una superficie e di
rendere meno spigoloso un oggetto composto da poligoni. Con questo metodo, il colore del
poligono è determinato tramite l'illuminazione dei suoi vertici: i colori lungo tutto il poligono sono
tutti interpolati da essi. Questo metodo è quello più comunemente usato nella renderizzazione
hardware.
- 26 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 27/39
La visione Realistica Prof. Maurizio Muzzupappa
GouraudGouraud ShadingShading
Flat Shading Gouraud Shading
GouraudGouraud ShadingShading
Si calcola la normale
media nei vertici
comuni a più poligoni
Una volta trovate le normali ai vertici occorre trovare l’intensità luminosa di ciascun vertice, usando
un qualunque modello di illuminazione.
Per ogni vertice del
poligono viene
calcolata l’intensità di
luce riflessa.
Lungo ciascun lato del
poligono vengono
interpolati tali valori di
luce tra un vertice e
l'altro
I colori (la luce
riflessa diffusa) dentro
al poligono vengono
interpolati attraverso
delle linee discansione (scanlines)
Il risultato e il
poligono ombreggiato
con il metodo
Gouraud
- 27 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 28/39
La visione Realistica Prof. Maurizio Muzzupappa
Il metodo del Gouraud shading ha un difetto significativo - il cosiddetto effetto " stars" (stelle): il
bagliore bianco effetto dell’highlight , che dovrebbe essere simile ad una ellisse, assomiglia invece
ad una stella. Altri aspetti negativi, che vanno comunque ricordati, sono rappresentati dalla perdita
dei dettagli molto luminosi e dalla comparsa, in certi casi, del cosiddetto “Mach Banding”,un’anomalia per cui sui lati dei triangoli compaiono delle strisce.
GouraudGouraud ShadingShading
Vantaggi: attenua il salto di colore tra facce adiacenti, è
semplice e veloce (è solo poco più oneroso del flat shading).
Svantaggi: Non elimina completamente la percezione dei
poligoni e non rende bene le riflessioni speculari (highlights).
7.3. PHONG SHADING
Anche in questo caso il nome si deve all’inventore, Phong Biu-Tuong, che ha pubblicato un articolo
su questa tecnica nel 1975. Il Phong Shading è più dispendioso (in termini di elaborazione) delGouraud per ombreggiare un poligono. Nel metodo detto del Phong shading vengono interpolate le
normali dei vertici del poligono al posto dell’intensità luminosa. Il sinonimo del Phong Shading è il
per-pixel lighting (illuminazione per pixel).
PhongPhong ShadingShading
Permette una resa migliore del caso precedente,
ma richiede maggior tempo di calcolo.
• Si calcolano le normali per ciascun vertice
• Nei vertici comuni a più poligoni si calcola la
media delle normali
• In ciascun pixel si calcolano le normali
interpolando linearmente le normali ai quattro
vertici del poligono di appartenenza
- 28 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 29/39
La visione Realistica Prof. Maurizio Muzzupappa
Per ogni vertice del
poligono viene calcolata
la normale
Lungo ciascun lato del
poligono vengono
interpolate le normali
le normali dei pixel
dentro al poligono
vengono interpolate
attraverso delle linee di
scansione (scanlines)
L'illuminazione è
calcolata per ciascun
pixel
Il metodo di Phong shading risulta il migliore per la modellazione di specular highlights (riflessi
speculari) su superfici lucide. In questo caso, dovrebbe essere usato anche il modello di Phong lighting , che calcola il vettore di riflessione di ciascun pixel.
PhongPhong ShadingShading
Vantaggio: buon realismo.
Svantaggi: è circa 5 volte più lento di Gouraud.
Migliore qualità dell’highlight
- 29 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 30/39
La visione Realistica Prof. Maurizio Muzzupappa
PhongPhong ShadingShading
Highligh secondo Gouraud Highligh secondo Phong
8. IL RAY TRACING
Chi si occupa di grafica 3D per passione o per ragioni di lavoro, deve spesso confrontarsi con
applicativi che generano le immagini finali con la tecnica chiamata ray tracing (o dei raggi
traccianti). Si tratta di un algoritmo tra i più usati in questo settore, ideato ormai diversi anni fa, con
lo scopo di realizzare scene al computer con caratteristiche e proprietà il più possibile realistiche.
Perciò, si può definire ray tracing il procedimento che genera in modo bidimensionale una scena
tridimensionale, descritta mediante funzioni cosiddette primitive, come triangoli, cubi, sfere e coni,
con una qualità descrittiva elevata, mediante la simulazione dell'interazione fra luce ed oggetti.
Ogni oggetto appartenente alla scena viene individuato univocamente nello spazio dall'insieme dicoordinate cartesiane X, Y e Z, definite rispetto ad un punto di riferimento, detto origine degli assi.
Ad esso vengono poi associate altre proprietà relative alla superficie, per caratterizzarlo in base alle
proprie esigenze.
La scena deve poi essere caratterizzata dalla presenza nello spazio di un osservatore (punto o
occhio), che volge lo sguardo in una determinata direzione. Ovviamente, affinché la scena sia
visualizzabile, occorre anche definire almeno una sorgente dalla quale illuminarla, definendone
tipo, intensità e colore. Il ray tracing si contraddistingue per la resa qualitativa della elaborazione,
proprio perché riesce ad intergire con le proprietà intrinseche dei materiali che formano gli oggetti
ed i corpi di una scena, raggiungendo livelli qualitativi fotorealistici, grazie alla applicazione di
leggi fisiche e modelli matematici che si rifanno alla realtà.
Alla base dell'algoritmo vi è un criterio elementare: per ogni punto appartenente ad un oggettovengono generati i raggi relativi alle sorgenti luminose, creando un gioco di riflessioni e rifrazioni
con i raggi provenienti da altri punti ed oggetti, che determinano le proprietà dei pixel (o punti)
dell'immagine da visualizzare. Si può facilmente intuire come una tecnica tanto semplice richieda al
tempo stesso una potenza di elaborazione notevole, in quanto anche in presenza di scene non
complesse il numero di raggi da calcolare è elevatissimo. Un software di ray tracing richiede
dunque i passaggi appena descritti, per la elaborazione di una scena, sia essa semplice o complessa.
Esso fa inizialmente definire gli oggetti da un punto di vista delle proprietà dei materiali e delle
posizioni nello spazio 3D. Occorre successivamente posizionare l'osservatore e le sorgenti luminose
con le loro direzioni relative, per poi calcolare la scena secondo il processo denominato rendering.
La scena è una collezione di oggetti e di sorgenti luminose visualizzabili da una telecamera
(osservatore).
- 30 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 31/39
La visione Realistica Prof. Maurizio Muzzupappa
Ray Tracing
Gli elementi basilari che compongono una scena sono:
Gli Oggetti
In generale un oggetto è un elemento qualunque, sia esso solido, liquido o gassoso, che
viene rappresentato nella scena. Sebbene un programma di ray tracing possa elaborare solo
oggetti che sono descrivibili matematicamente (come sfere, cilindri, coni e piani), essi
possono essere combinati per creare oggetti di maggiore complessità (da una semplice sedia
ad un aereo). La superficie di ciascun oggetto ha determinate proprietà (texture), come il
colore, la rugosità e la lucentezza. Per semplicità tratteremo oggetti caratterizzati dal solo
colore.
Le Sorgenti Luminose
Le sorgenti luminose, come gli oggetti, possono essere collocate in un qualunque punto dellascena. Essendo, per definizione, elementi che emettono raggi luminosi, il loro ruolo
nell'ambito della scena è di importanza
fondamentale, in quanto senza di esse la
scena non potrebbe essere in pratica
visualizzata, venendo a mancare i raggi da
tracciare nello spazio. Una volta
individuato il corretto posizionamento
delle sorgenti di luce occorre assegnare a
ciascuna di esse l'intensità, che ne rappresenta un parametro fondamentale. Esso riassume in
pratica le proprietà inerenti il colore e la luminosità delle sorgenti stesse. Potreste così voler
rappresentare una scena all'aria aperta in una giornata di sole oppure descriverne unad'interno con una luce soffusa di una lampada. In ogni caso, le sorgenti luminose
rappresentano una degli aspetti più significativi della teoria del ray tracing . La scelta della
posizione e del tipo di luce risulta perciò determinante per ottenere una scena con una resa
adeguata alle aspettative.
La Telecamera
La telecamera (osservatore) rappresenta il punto di osservazione della scena. Per capire il
suo ruolo ci si può brevemente riferire
alla teoria della fotografia, assimilandola
al piccolo foro che occorre praticare in un
lato di una scatola rudimentale schermata
dalla luce per impressionare una lastrafotografica collocata nel lato opposto. Per
fare una foto occorre tenere aperto il foro
- 31 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 32/39
La visione Realistica Prof. Maurizio Muzzupappa
per un certo tempo, in modo che il fascio di luce possa sensibilizzare adeguatamente la
pellicola. La ragione per la quale il foro debba avere un diametro ridotto è fornita dal fatto
che bisogna evitare la saturazione luminosa, con il rischio di una sovraesposizione
dell'immagine generata.
Il sistema, pur essendo semplice, funziona proprio grazie al fatto che la luce arriva da una
determinata posizione seguendo un'unica direzione, colpendo una sola zona della lastra. Sel'apertura fosse più larga l'immagine diventerebbe rapidamente sfuocata, come risultato
dell'incremento di quantità di luce incidente. La logica dell'algoritmo di ray tracing è simile
a questa: la telecamera determina dove i raggi luminosi debbano colpire lo schermo del
computer (equivalente alla pellicola fotografica).
Per capire come ciò avvenga esattamente tratteremo ora il concetto di ray casting , che ci aiuterà a
capire meglio l'argomento di ray tracing , che ne rappresenta una logica estensione.
Il ray casting è un metodo nel quale le superfici visibili degli oggetti (cioè inquadrati direttamente
dalla telecamera) vengono colpite dai raggi di luce dall'osservatore nella scena. Prima di proseguire
ribadiamo dunque che come la pellicola (o lastra) fotografica è assimilabile allo schermo del
computer, il foro (od obiettivo) della macchina fotografica è paragonabile all'occhio
dell'osservatore. L'unità più piccola di luce viene definita pixel (o punto) e può assumere formecircolari od ellissoidali. I monitor attuali possono raggiungere anche risoluzioni di oltre 1600 pixel
orizzontali x 1200 pixel verticali (a frequenze di refresh elevate), garantendo una definizione di
immagine senza precedenti. A ciascun pixel è possibile associare un solo colore nell'unità di tempo
e nel ray tracing esso rappresenta il colore della luce che passando sull'oggetto, attraversa il pixel
stesso fino ad arrivare all'occhio. Ciascun fascio di luce viene detto appunto raggio. Un raggio è una
sottile linea diritta utilizzata nel ray tracing per modellare un fascio di luce, che inizia in un certo
punto (occhio) e si estende in una certa direzione della scena. I raggi consentono quindi di
determinare quali oggetti appartenenti alla scena debbano essere visualizzati.
L'algoritmo di ray casting si basa proprio sui raggi luminosi che attraversano la scena. Ad ogni
punto appartenente allo schermo corrisponde un raggio che dall'occhio attraversa il pixel stesso per
raggiungere lo spazio dell'immagine. In tal senso tutti gli oggetti che compongono la scena vengono
valutati per stabilire se un determinato raggio debba o meno interessarli.
Ovviamente esiste la possibilità che un singolo raggio coinvolga l'intersezione di più oggetti, nel
caso siano ad esempio uno dietro l'altro. Per ciascun raggio, l'intersezione che è più vicina all'occhio
è la sola che è visibile all'occhio stesso. Il colore in quel punto è determinato proprio dall'intensità
del raggio di luce che lo attraversa. Ciò avviene per ogni pixel presente sullo schermo, fatto che fa
immediatamente intuire quanto possa diventare pesante l'elaborazione di scene complesse. Si pensi
ad esempio alla realizzazione di una scena con una risoluzione di 640 punti orizzontali x 480 punti
verticali (per un totale di 307.200 punti): nell'ipotesi di avere collocato 10 oggetti nella nostra scena
l'algoritmo dovrà verificare 10 intersezioni per ognuno dei 307.200 punti, per un totale di 3.072.000
verifiche di intersezioni! Ciò conferma il fatto che un programma di ray tracing solitamenteimpiega la maggioranza del tempo (dal 75 al 95%) di calcolo per la elaborazione di tali
informazioni.
Rispetto al ray casting che si preoccupa di determinare solo quali siano le superfici visibili degli
oggetti, il ray tracing estende tale valutazione cercando di stabilire come debbano apparire le
superfici stesse. I programmi di ray tracing consentono infatti all'utente di impostare diversi effetti
per rendere maggiormente realistiche le immagini, come ombre, trasparenze e riflessioni, che
sarebbero difficilmente ottenibili applicando altri metodi.
L'algoritmo di ray tracing è di tipo ricorsivo. Ciò significa che per raggiungere un determinato
risultato occorre che un dato processo debba ripetersi un numero arbitrario (ma finito) di volte.
L'algoritmo inizia come quello di ray casting , inviando un raggio dall'occhio che attraversando lo
schermo determina quali oggetti si intersecano ad esso, individuando quello tra tutti più vicino. Laricorsività si determina nel momento in cui vengono inviati diversi raggi dal punto di intersezione,
per verificare quali oggetti vengano riflessi in tale punto, quali oggetti potrebbero essere visualizzati
- 32 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 33/39
La visione Realistica Prof. Maurizio Muzzupappa
attraverso l'oggetto in questione in tale punto, quali sorgenti luminose siano direttamente visibili dal
punto stesso e così via. Questi raggi aggiuntivi vengono spesso indicati come raggi secondari per
differenziarli dal raggio principale iniziale. Spesso nella letteratura dedicata al ray tracing si
trovano i termini "backward ray tracing " (ray tracing a ritroso) e " forward ray tracing " (ray tracing
in avanti). In realtà tali definizioni rappresentano lo stesso concetto. Alcuni testi infatti si riferiscono
al percorso a ritroso compiuto dal raggio dall'occhio dell'osservatore alla sorgente luminosa. Altriinvece ritengono di analizzare il percorso del raggio dalla sorgente luminosa all'occhio
dell'osservatore in avanti. Il primo caso è comunque preferito dalla maggioranza degli autori. Ci
occuperemo ora della descrizione dei tre effetti principali relativi al ray tracing , ciascuno dei quali
si determina quando il raggio va a colpire la superficie più vicina di intersezione.
La Riflessione Se la superficie colpita dal raggio luminoso è riflettente, come uno specchio, il ray tracer deve
determinare il colore in quel punto, tenendo conto non solo del colore della superficie, ma anche
dei colori degli oggetti che si riflettono nel punto stesso. Se si pensa alla classica superficie di
marmo (tipica delle prime realizzazioni di scene ray tracing ), sarà possibile vedere su di esso i
riflessi degli oggetti che sono collocati nelle vicinanze. Ciò deve avvenire proprio a causa della
luce che colpendo tali oggetti colpisce il pavimento, rimbalzando e raggiungendo l'occhiodell'osservatore. Per eseguire in modo corretto i calcoli, occorre che il programma di ray tracing sia in grado di individuare l'angolo esatto di riflessione sul pavimento del raggio, creandone uno
che possa raggiungere correttamente l'occhio dell'osservatore.
La Trasparenza
Il ragionamento relativo alla trasparenza è simile a quello
appena descritto per la riflessione, con la differenza
fondamentale che il raggio attraversa in parte la superficie del
corpo trasparente uscendone poi inclinato secondo il principio
della rifrazione. La rifrazione è un fenomeno fisico ottico che
interessa la luce quando attraversa una determinata sostanza,
deviandone la direzione. Un tipico esempio di rifrazione è
quello che consiste nell'introdurre una penna in un bicchiere
d'acqua: osservando il bicchiere dall'alto la penna apparirà
come piegata nella zona in cui si immerge nell'acqua stessa.
Ciascun corpo è quindi caratterizzato da un determinato
indice di rifrazione, che può essere definito come un valore
che descrive la velocità con cui la luce lo attraversa, rispetto alla velocità con cui la luce viaggia
nel vuoto. Siccome l'indice di rifrazione del vetro è superiore a quello dell'acqua, la luce risulterà
maggiormente deviata rispetto all'acqua.
RayRay TracingTracing: le trasparenze: le trasparenze
La diffrazione della luce
- 33 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 34/39
La visione Realistica Prof. Maurizio Muzzupappa
Le Ombre Le ombre rappresentano la terza caratteristica tipica del raytracing . Per cercare di capire come debbano essere calcolate, si
può cercare di immaginare di essere sulla superficie di un certo
corpo. Si tratterà quindi di verificare se si scorgano o meno fasci
luminosi provenienti dalle sorgenti di luce. In caso affermativosignifica che sarà possibile individuare un chiaro percorso fra voi
e la sorgente e quindi un certo numero di fotoni viaggeranno
lungo tale via. In caso negativo significa che almeno un oggetto
con la superficie opaca (cioè non trasparente) si interpone tra voi
e la sorgente luminosa, rendendovi così in ombra rispetto alla
sorgente stessa. Una volta determinata una intersezione le ombre possono venire calcolate
inviando i vari raggi verso le sorgenti luminose. Nel caso si incontri una superficie opaca
significa che nessun fascio luminoso può raggiungere il primo oggetto, per cui la superficie
risulterà in ombra.
RayRay TracingTracing: le ombre: le ombre
shadow Soft shadow
In figura è mostrata la stessa scena renderizzata prima con il Gouraud shading e dopo mediante raytracing .
RayRay TracingTracing
Shading di Gouraud Ray Tracing: ombre,
riflessioni, trasparenze.
- 34 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 35/39
La visione Realistica Prof. Maurizio Muzzupappa
9. IL RADIOSITY
Il metodo radiosity è invece concepito per la visualizzazione, la più realistica possibile, delle
superfici perfettamente diffusive. Consideriamo una scena costituita semplicemente da due pareti
perfettamente diffusive, una bianca ed una rossa Se visualizziamo la scena supponendo di avere
una sorgente luminosa distante, ogni parete assumerà un colore costante. Nella realtà, invece, lariflessione diffusa della parete rossa, colpisce la parete bianca, col risultato che della luce di colore
rosso andrà ad aggiungersi alla luce bianca riflessa dalle parti di parete più vicine alla parete rossa.
Nel metodo radiosity la scena viene suddivisa in pezze ( patches), ovvero in molti poligoni piatti e
di dimensioni limitate, ciascuno dei quali è considerato perfettamente diffusivo
Il metodo prevede due passi per determinare le gradazioni di colore da assegnare alle varie pezze. Il
primo passo consiste nel determinare, per ogni coppia di pezze, i fattori di forma ( form factor ), che
descrivono come la luce che lascia una pezza influenza l’altra. In pratica dopo aver calcolato i form factor si risolve un sistema di equazioni lineari di dimensioni elevate (e sparso!) e alla fine si ha per
ogni patch la quantità di luce che la raggiunge ( shading ) relativo alla componente diffusa dello
shading di una superficie, quindi è indipendente dalla posizione dell’osservatore. In sintesi, il
metodo modella in maniera accurata la distribuzione dell’illuminazione in una scena composta soloda superfici perfettamente diffusive. L’accuratezza della soluzione trovata dipende da:
• accuratezza della suddivisione in patch della scena
• accuratezza nel calcolo dei form factor
• accuratezza nella soluzione del sistema
In pratica funziona molto bene, per calcolare l’illuminazione di scene architettoniche (le pareti sono
diffusori quasi perfetti) e per mostrarle poi durante scene interattive; è molto usato nei videogiochi
per calcolare l’illuminazione della scena una sola volta.
RadiosityRadiosity
Radiosity è un algoritmo globale, complementare del ray-tracing.
Tutte le superfici della scena sono suddivise in frammenti chiamati
“patch”. Ogni patch è trattato come una sorgente luminosa.
L’illuminazione (radiosity) in un patch è data dalla luce emessa (se
è una sorgente) e dalla luce che arriva da tutti gli altri patch della
scena.
E’ un algoritmo pesante computazionalmente.
Ciascun patch dipende da tutti gli altri che sono
da esso visibili, e per questo bisogna risolvere
il problema della rimozione delle superfici
nascoste dal punto di vista di ciascun patchdella scena.
- 35 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 36/39
La visione Realistica Prof. Maurizio Muzzupappa
RadiosityRadiosity
RadiosityRadiosity
- 36 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 37/39
La visione Realistica Prof. Maurizio Muzzupappa
EsempiEsempi
EsempiEsempi
EsempiEsempi
EsempiEsempi
EsempiEsempi
EsempiEsempi
EsempiEsempi
EsempiEsempi
- 37 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 38/39
La visione Realistica Prof. Maurizio Muzzupappa
EsempiEsempi
EsempiEsempi
EsempiEsempi
EsempiEsempi
EsempiEsempi
EsempiEsempi
EsempiEsempi
EsempiEsempi
- 38 -
8/2/2019 8.Computer Grafica
http://slidepdf.com/reader/full/8computer-grafica 39/39
La visione Realistica Prof. Maurizio Muzzupappa