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 ne l 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 d i una scena tridimens ionale ha portato gli svilupp atori dei sistemi di rendering 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 q ualità. Il process ore e l’ampiez za di band a 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 dell Realismo dell immagine immagine  Realismo dell Realismo dell immagine immagine  Realismo dell Realismo dell immagine immagine  Realismo dell Realismo dell immagine immagine  - 1 -

8.Computer Grafica

Embed Size (px)

Citation preview

Page 1: 8.Computer Grafica

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 -

Page 2: 8.Computer Grafica

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 -

Page 3: 8.Computer Grafica

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 -

Page 4: 8.Computer Grafica

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 -

Page 5: 8.Computer Grafica

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 -

Page 6: 8.Computer Grafica

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 -

Page 7: 8.Computer Grafica

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 -

Page 8: 8.Computer Grafica

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 -

Page 9: 8.Computer Grafica

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 -

Page 10: 8.Computer Grafica

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 -

Page 11: 8.Computer Grafica

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 -

Page 12: 8.Computer Grafica

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 -

Page 13: 8.Computer Grafica

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 -

Page 14: 8.Computer Grafica

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 -

Page 15: 8.Computer Grafica

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 -

Page 16: 8.Computer Grafica

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 -

Page 17: 8.Computer Grafica

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 -

Page 18: 8.Computer Grafica

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 -

Page 19: 8.Computer Grafica

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 -

Page 20: 8.Computer Grafica

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 -

Page 21: 8.Computer Grafica

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 -

Page 22: 8.Computer Grafica

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 -

Page 23: 8.Computer Grafica

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 -

Page 24: 8.Computer Grafica

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 -

Page 25: 8.Computer Grafica

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 -

Page 26: 8.Computer Grafica

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 -

Page 27: 8.Computer Grafica

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 -

Page 28: 8.Computer Grafica

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 -

Page 29: 8.Computer Grafica

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 -

Page 30: 8.Computer Grafica

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 -

Page 31: 8.Computer Grafica

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 -

Page 32: 8.Computer Grafica

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 -

Page 33: 8.Computer Grafica

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 -

Page 34: 8.Computer Grafica

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 -

Page 35: 8.Computer Grafica

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 -

Page 36: 8.Computer Grafica

8/2/2019 8.Computer Grafica

http://slidepdf.com/reader/full/8computer-grafica 36/39

La visione Realistica  Prof. Maurizio Muzzupappa 

RadiosityRadiosity

RadiosityRadiosity

 

- 36 -

Page 37: 8.Computer Grafica

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 -

Page 38: 8.Computer Grafica

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 -

Page 39: 8.Computer Grafica

8/2/2019 8.Computer Grafica

http://slidepdf.com/reader/full/8computer-grafica 39/39

La visione Realistica  Prof. Maurizio Muzzupappa