Sei sulla pagina 1di 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 allultimo 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 lintero processo in vari passaggi, detti anche fasi. Ed appunto nella pipeline per la grafica tridimensionale che queste diverse fasi diventano ciascuna parte di ununica sequenza. Lincredibile carico di lavoro alla base della realizzazione di una scena tridimensionale ha portato gli sviluppatori dei sistemi di rendering per il 3D (sia per lhardware 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 larte di ingannare senza essere scoperti. Questo per dire che una delle forme darte 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 lampiezza 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 dellimmagine dell

Realismo dellimmagine dell

Realismo dellimmagine dell Realismo dellimmagine dell

-1-

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 lalgoritmo 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 allosservatore. 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 dellangolo 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. Se invece langolo minore o uguale a 90, il triangolo allora visibile e non pu essere scartato.

Back Face Culling


Una prima semplificazione nella determinazione delle superfici visibili consiste nell'eliminare le facce "posteriori" di un solido mediante lalgoritmo 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 allosservatore.

Back Face Culling


Se un oggetto rappresentato da un poliedro solido chiuso, le facce poligonali del poliedro delimitano completamente il volume del solido.

-2-

La visione Realistica

Prof. Maurizio Muzzupappa

Back Face Culling


Supponendo di aver definito i poligoni in maniera tale che le normali alle loro superfici siano tutte dirette verso lesterno del poligono, le facce che hanno una normale che punta verso losservatore possono essere visibili, quelle con normale che punta via dallosservatore sicuramente non lo saranno.

Back Face Culling


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 langolo minore o uguale a 90, il triangolo allora visibile e non pu essere scartato.

Back Face Culling


Il procedimento di back-face culling 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-

La visione Realistica 2.2. Z-BUFFERING

Prof. Maurizio Muzzupappa

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 dallosservatore (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 per determinare la superfici nascoste dovute alla sovrapposizione degli oggetti nella scena rispetto al punto di vista dellosservatore.

Z- Buffering

Z-Buffering
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-

La visione Realistica

Prof. Maurizio Muzzupappa

Z-Buffering
Mentre nel frame buffer viene memorizzato il colore, nello zbuffer viene memorizza la distanza dall'osservatore di ogni pixel appartenente alla superficie.
Z- buffer
scena vuota I triangolo

Z- buffer
dopo il I triangolo

Z- buffer
dopo il II triangolo II triangolo

ogni pixel rappresentato con il suo colore mentre il valore della z dato dal numero allinterno del pixel.

Lalgoritmo 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, limmagine potr apparire sul monitor. La tecnica dello z-buffering molto semplice da realizzare 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 potrebbero essere 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 luno con laltro. Inoltre, decisamente dispendioso dal punto d vista delle volte in cui per un determinato pixel occorre effettuare il rendering.

-5-

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 o indirettamente 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 grafica cosiddetta 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 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 assorbita

ASSORBIMENTO 100% 50% 0%

La 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.

La radiazione trasmessa
La radiazione incidente pu essere in parte trasmessa dentro il solido quando quest'ultimo trasparente.

-6-

La visione Realistica

Prof. Maurizio Muzzupappa

La radiazione trasmessa
La Trasparenza

La radiazione riflessa

INTERRIFLESSIONE SPECULARE (highlight) assente media massima

La 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 riflessa
Highlight

La 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 loggetto da un'altra angolazione possiamo notare che anche l'highlight si muove.

La radiazione riflessa

Oggetti con una forte componente speculare, quando sono inseriti allinterno di una scena riflettono anche gli oggetti circostanti.

La 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 riflessa

In CG si possono definire le propriet di una superficie specificando il contributo delle diverse componenti di luce riflessa.

matto, opaco

liscio, lucido

-7-

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 come un 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 di ognuna di queste porzioni alla radiazione luminosa incidente.

I modelli di riflessione in CG
Definire un modello di illuminazione significa scegliere pertanto unequazione per calcolare l'intensit luminosa in un punto P generico dello spazio, in funzione dell'intensit della radiazione incidente e delle caratteristiche geometriche e fisiche della superficie. L'obiettivo di un modello di illuminazione quello di calcolare 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 direttamente dalle 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-

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 questi pi 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 gratibus luminis, 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", utilizzati nell'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 (Id ) proporzionale all'intensit della luce incidente (IL) e al coseno dell'angolo tra la normale alla superficie (N) e il raggio incidente.

-9-

La visione Realistica

Prof. Maurizio Muzzupappa

MODELLO DI RIFLESSIONE DIFFUSA DA SORGENTE PUNTIFORME Il fenomeno regolato dalla legge del coseno di Lambert. Se un corpo un diffusore perfetto ed IL lintensit luminosa incidente nel punto P della sua superficie, lintensit di radiazione diffusa sar proporzionale al coseno dell'angolo tra la normale alla superficie nel punto e la direzione di incidenza L Id(p)= Kd IL cos + Ka Ia

MODELLO DI RIFLESSIONE DIFFUSA DA SORGENTE PUNTIFORME

Il modello di Lambert viene espresso mediante la seguente formula:

Id(p)= Kd IL cos
in cui:
Id IL Kd l'intensit dei raggi riflessi in qualsiasi direzione l'intensit del raggio di luce incidente 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 -

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 IL 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.

Is = ks IL cosn .
Questa rapida diminuzione della riflessione speculare approssimata da cos , 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.
n

- 11 -

La visione Realistica

Prof. Maurizio Muzzupappa

MODELLO DI RIFLESSIONE SPECULARE DA SORGENTE 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

Is(p)= Ks IL cos

MODELLO DI RIFLESSIONE SPECULARE DA SORGENTE PUNTIFORME

Riflessione diffusa

Riflessione 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 = IL(ks cosn + kd cos) + ka Ia


dove Ia 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 frazione della 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 ka caratteristiche dell'ambiente e della scena:

- 12 -

La visione Realistica

Prof. Maurizio Muzzupappa

Modello di riflessione di Phong


Le due espressioni viste per le radiazioni riflesse diffuse e le radiazioni riflesse specularmente, possono sovrapporsi, in quanto 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 allaumentare 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 laspetto 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 nellapplicare 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 -

La visione Realistica

Prof. Maurizio Muzzupappa

Le Texture
Ci sono due livelli di credibilit: quella inerente ai modelli e quella riguardante le superfici. Le texture vengono utilizzate per rendere realistiche le superfici dei modelli 3D, evidenziando i dettagli e fornendo alloggetto quelle caratteristiche fisiche tipiche del mondo reale.

Le Texture

Scena senza le texture

Scena con le texture

Esse sono di due tipi: mappate: la texture mapping (o mappatura delle tessiture) consiste nellapplicare una immagine sulloggetto. In questo caso molto importante calcolare bene la dimensione dellimmagine 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 loggetto a cui 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 limmagine chiamata texture map, essa risiede in uno spazio di coordinate (u,v) e i suoi elementi individuali sono chiamati texel.

- 14 -

La visione Realistica

Prof. Maurizio Muzzupappa

Texture campionate
Invece di usare un singolo colore per il materiale possibile utilizzare unimmagine. Ad esempio, possibile usare immagini scansionate, oppure possibile creare pattern mediante programmi di fotoritocco o utilizzarre delle immagini di librerie di materiali o qualsiasi altra sorgente di immagini bitmap.

Texture campionate
Limmagine 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 loperazione 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 dellequazione di illuminazione. Quando la superficie un poligono, come avviene nellaccelerazione 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 leffetto di un pavimento. Mappe di riflessione: simulano una scena riflessa sulla superficie di un oggetto lucido. Sono dette anche mappe di ambiente.

- 15 -

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 limmagine 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 il cerchio viene mappato sulloggetto. Mappe di contrasto (bump map): creano un effetto a sbalzo o a bassorilievo.

Le Texture

colore

diffusione

specularit

bump

Le Texture

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. Limmagine 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 -

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/costo variazioni 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 dei parametri 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 bump mapping, anche la silhouette del modello mostra le corrette deformazioni.

- 17 -

La visione Realistica

Prof. Maurizio Muzzupappa

Le Texture

Bump MAP

Laggiunta di particolari tramite una texture non modifica laspetto geometrico; la superficie appare comunque piatta. Mediante Bump Map possibile simulare effetti di bassorilievo (o rugosit) sulla superficie.

5.1.2. LA MAPPATURA DELLE TEXTURE CAMPIONATE

Texture campionate

Quattro sono i principali metodi di mappatura: Planare Cilindrica Sferica Cubica

texture - 18 -

La visione Realistica

Prof. Maurizio Muzzupappa

mappatura piana

mappatura cilindrica

mappatura sferica

mappatura cubica

Nella mappatura planare, le immagini vengono proiettate sulloggetto in direzione normale ad un asse specifico (x, y, z).

Texture campionate

Texture campionate

La mappatura planare

Con la mappatura cilindrica, limmagine viene avvolta intorno allasse selezionato.

- 19 -

La visione Realistica

Prof. Maurizio Muzzupappa

Texture campionate

Texture campionate

La mappatura cilindrica

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 lalto e verso il basso. A causa di questa caratteristica possono generarsi effetti indesiderati ed irregolari. Le mappe sferiche, funzionano meglio se la parte alta e quella bassa sono occupate da un colore uniforme, in modo che lallungamento della texture non sia visibile.

Texture campionate

Texture campionate

La mappatura sferica

La mappatura cubica simile a quella planare, ma con una sola eccezione: impossibile selezionare lasse di mappatura. Limmagine, infatti, viene proiettata su tutti gli assi contemporaneamente.

Texture campionate

La mappatura cubica

- 20 -

La visione Realistica

Prof. Maurizio Muzzupappa

Texture campionate

La mappatura UV

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.

Texture procedurali

Texture procedurali

Marmo

Granito

- 21 -

La visione Realistica

Prof. Maurizio Muzzupappa

Texture procedurali Texture procedurali

Legno Mattonell a

6. LE LUCI IN CG
Quattro passi fondamentali per eseguire un rendering

Le 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 direzione preferenziale. Si parla in questo caso di sorgenti direzionali. Si possono poi avere modelli con una sola sorgente o con un numero arbitrario di sorgenti.

Assegnare i materiali Definire le sorgenti di luce Impostare lambiente Eseguire il Rendering

Le luci in CG
Dovendo modellare una scena occorre non solo modellarne 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 CG
I programmi di rendering gestiscono differenti tipi di sorgenti luminose: La luce ambiente, cio che illumina tutta la ambiente scena e permette di dare chiarezza alla scena, ma comunque non permette di dare effetti avanzati di sfumature ed ombre

- 22 -

La visione Realistica

Prof. Maurizio Muzzupappa

Le luci in CG
I programmi di rendering gestiscono differenti tipi di sorgenti luminose: La luce spot, che pu essere illustrata come il spot 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 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 sorgente luminosa 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).

Le luci in CG
I programmi di rendering gestiscono differenti tipi di sorgenti luminose: La luce omnidirezionale (point), ossia una point) 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.

Quattro passi fondamentali per eseguire un rendering

Assegnare i materiali Definire le sorgenti di luce Impostare lambiente Eseguire il Rendering

Le luci in CG
I programmi di rendering gestiscono differenti tipi di sorgenti luminose: La luce a raggi paralleli, ossia una direzione da paralleli cui provengono, parallelamente, i raggi solari.

Impostazione della scena

Le luci in CG

Impostazione della scena

Luce distant

Luce point

Luce spot

- 23 -

La visione Realistica

Prof. Maurizio Muzzupappa

Impostazione della scena

Impostazione della scena

Impostazione della scena

Impostazione della scena

Impostazione della scena

Impostazione della scena

Impostazione della scena

- 24 -

La visione Realistica 7. GLI ALGORITMI DI SHADING

Prof. Maurizio Muzzupappa

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 limmagine migliore possibile). Obiettivo degli algoritmi di shading , dunque, quello di determinare per ogni punto dellimmagine il suo colore, che funzione del colore della superficie delloggetto 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 limpiego 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 di 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 punti significativi. Flat Shading Gouraud Shading Phong Shading

7.1 FLAT SHADING E il pi semplice dei tre modelli. In questo caso vengono rilevati i valori di colore dei tre vertici di un 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 lombreggiatura allintero 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 lillusione di ricavare, appunto da pi triangoli, ununica superficie. Per migliorare leffetto visivo necessario aumentare il numero di triangoli che compongono loggetto.

- 25 -

La visione Realistica

Prof. Maurizio Muzzupappa

Flat Shading

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 delloggetto.

Flat Shading
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 lhardware per la grafica tridimensionale destinato al grande mercato e questo soprattutto perch garantisce unottima 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 -

La visione Realistica

Prof. Maurizio Muzzupappa

Gouraud Shading

Flat Shading

Gouraud Shading

Gouraud Shading

Si calcola la normale media nei vertici comuni a pi poligoni

Una volta trovate le normali ai vertici occorre trovare lintensit luminosa di ciascun vertice, usando un qualunque modello di illuminazione.

Per ogni vertice del poligono viene calcolata lintensit 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 di scansione (scanlines)

Il risultato e il poligono ombreggiato con il metodo Gouraud

- 27 -

La visione Realistica

Prof. Maurizio Muzzupappa

Il metodo del Gouraud shading ha un difetto significativo - il cosiddetto effetto "stars" (stelle): il bagliore bianco effetto dellhighlight, 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, unanomalia per cui sui lati dei triangoli compaiono delle strisce.

Gouraud Shading

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 allinventore, Phong Biu-Tuong, che ha pubblicato un articolo su questa tecnica nel 1975. Il Phong Shading pi dispendioso (in termini di elaborazione) del Gouraud per ombreggiare un poligono. Nel metodo detto del Phong shading vengono interpolate le normali dei vertici del poligono al posto dellintensit luminosa. Il sinonimo del Phong Shading il per-pixel lighting (illuminazione per pixel).

Phong Shading
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 -

La visione Realistica

Prof. Maurizio Muzzupappa

Per ogni vertice del poligono viene calcolata la normale

Lungo ciascun lato del le normali dei pixel poligono vengono dentro al poligono vengono interpolate interpolate le normali 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.

Phong Shading

Vantaggio: buon realismo. Svantaggi: circa 5 volte pi lento di Gouraud. Migliore qualit dellhighlight

- 29 -

La visione Realistica

Prof. Maurizio Muzzupappa

Phong Shading

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 di coordinate 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 oggetto vengono 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 -

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 della scena. 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 una d'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 lastra fotografica collocata nel lato opposto. Per fare una foto occorre tenere aperto il foro - 31 -

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. Se l'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 forme circolari 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 solitamente impiega 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. La ricorsivit 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 -

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. Altri invece 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'occhio dell'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.

Ray Tracing: le trasparenze

La diffrazione della luce

- 33 -

La visione Realistica

Prof. Maurizio Muzzupappa

Le Ombre Le ombre rappresentano la terza caratteristica tipica del ray tracing. 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 affermativo significa 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.

Ray Tracing: le ombre

shadow

Soft shadow

In figura mostrata la stessa scena renderizzata prima con il Gouraud shading e dopo mediante ray tracing.

Ray Tracing

Shading di Gouraud

Ray Tracing: ombre, riflessioni, trasparenze.

- 34 -

La visione Realistica 9. IL RADIOSITY

Prof. Maurizio Muzzupappa

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, la riflessione 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 laltra. 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 dellosservatore. In sintesi, il metodo modella in maniera accurata la distribuzione dellilluminazione in una scena composta solo da superfici perfettamente diffusive. Laccuratezza 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 lilluminazione di scene architettoniche (le pareti sono diffusori quasi perfetti) e per mostrarle poi durante scene interattive; molto usato nei videogiochi per calcolare lilluminazione della scena una sola volta.

Radiosity
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. Lilluminazione (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 patch della scena.

- 35 -

La visione Realistica

Prof. Maurizio Muzzupappa

Radiosity

Radiosity

- 36 -

La visione Realistica

Prof. Maurizio Muzzupappa

Esempi

Esempi

Esempi

Esempi

Esempi

Esempi

Esempi

Esempi

- 37 -

La visione Realistica

Prof. Maurizio Muzzupappa

Esempi

Esempi

Esempi

Esempi

Esempi

Esempi

Esempi

Esempi

- 38 -

La visione Realistica

Prof. Maurizio Muzzupappa

- 39 -

Potrebbero piacerti anche