• Non ci sono risultati.

1.8 Organizzazione del Testo

2.1.1 Materiali e Modello di Riessione di Phong

Quando bisogna visualizzare un oggetto virtuale, alla mesh viene normalmente asso- ciato un materiale. Mentre la mesh descrive le proprietà geometriche di un oggetto, il materiale denisce come l'oggetto reagirà se illuminato da una certa sorgente luminosa.

CAPITOLO 2. RENDERING DI OGGETTI VIRTUALI 37 Il caso più semplice si ha quando un oggetto non viene illuminato da alcuna sorgente luminosa (e non emette luce propria): in tal caso l'oggetto risulterà com- pletamente nero. Supponendo ad esempio di stare in una camera completamente buia, ogni oggetto apparirà nero indipendentemente da quello che noi consideriamo essere il suo colore.

Quando però nella realtà gli oggetti vengono illuminati da alcune sorgenti lumi- nose, l'occhio umano percepisce delle informazioni aggiuntive: riusciamo ad associare ad ogni oggetto un colore, siamo in grado di dire se un oggetto riette o meno della luce e in che misura, e possiamo addirittura riconoscere oggetti che risultano in qual- che modo trasparenti perché il nostro occhio riceve raggi luminosi riessi da oggetti situati dietro l'oggetto trasparente.

In computer graphics tutte queste proprietà di risposta di un oggetto alla luce sono racchiuse nel concetto di materiale associato ad una mesh.

I modelli che sono stati proposti per rappresentare le proprietà di un materiale e utilizzarle per calcolare il colore dei punti di oggetti virtuali sono diversi [9, 10]. Nel nostro caso utilizziamo un modello molto comune presente anche nella vecchia VRLib: il modello di riessione di Phong [9].

Un materiale è denito dal seguente insieme di proprietà: 1. EM - material emission color

Vettore di 3 componenti positive che indica la quantità di luce emessa per ogni componente di colore (R, G, B) in ogni direzione. Per oggetti che non emettono luce, tutte le componenti di questo termine saranno nulle. Il colore emissivo non è presente nella versione di base del modello di Phong, ma risulta comunque utile nella pratica.

2. AM - material ambient color

Vettore di 3 componenti positive che indica la quantità di luce riessa per ogni componente di colore (R, G, B) per quanto riguarda la luce ambientale (che arriva sull'oggetto da ogni direzione e viene riessa in ogni direzione).

3. DM - material diuse color

Vettore di 3 componenti positive che indica la quantità di luce riessa per ogni componente di colore (R, G, B) per quanto riguarda la luce che arriva da una sorgente. La luce in questo caso viene riessa in ogni direzione (riessione Lambertiana).

4. SM - material specular color

Vettore di 3 componenti positive che indica la quantità di luce riessa per ogni componente di colore (R, G, B) per quanto riguarda la luce che arriva da una sorgente. La luce in questo caso viene riessa in una singola direzione (come la riessione di un singolo raggio su uno specchio, secondo la popolare legge di riessione).

5. n - material shininess

Coeciente reale positivo che assume valori tanto superiori quanto più la su- percie è liscia, maggiore è il suo valore e minori saranno le dimensioni della sorgente luminosa riessa sull'oggetto.

Esamineremo più avanti il problema di materiali con un certo grado di trasparenza. Il modello prescrive anche che ad ogni sorgente luminosa vengano associate alcune proprietà, in particolare abbiamo:

1. AL - light ambient color

Vettore di 3 componenti positive che indica la quantità di luce ambiente emessa dalla sorgente luminosa per ogni componente di colore (R, G, B). Questa luce colpisce gli oggetti nella scena da ogni direzione.

2. DL - light diuse color

Vettore di 3 componenti positive che indica la quantità di luce a riessione diusa emessa dalla sorgente luminosa per ogni componente di colore (R, G, B). Questa luce si riette in tutte le direzioni secondo il modello Lambertiano. 3. SL - light specular color

Vettore di 3 componenti positive che indica la quantità di luce a riessione speculare emessa dalla sorgente luminosa per ogni componente di colore (R, G, B). Questa luce si riette in una singola direzione secondo la legge di riessione. Supponendo quindi di avere un oggetto composto dal materiale M e illuminato dalla sorgente di luce L caratterizzati dai parametri sopra e di prendere in esame un singolo punto P sulla supercie dell'oggetto osservato da una posizione O, e denendo:

• N - il vettore ortogonale alla supercie nel punto P normalizzato (la normale nel punto P);

CAPITOLO 2. RENDERING DI OGGETTI VIRTUALI 39 • V - il vettore che va dal punto P alla posizione dell'osservatore O

(normalizzato);

• R- il vettore che indica la direzione e il verso di un raggio incidente nel punto P riesso secondo la legge di riessione (normalizzato);

introducendo inoltre la notazione per i vettori: `·' per il prodotto scalare e `⊗' per il prodotto componente per componente, abbiamo che secondo il modello di illuminazione di Phong il colore del punto P risulterà:

CP = EM + AM ⊗ AL+ (DM ⊗ DL) (L · N ) + (SM ⊗ SL) (V · R)

n (2.1)

dove però bisogna scartare ogni termine che nella somma risulti negativo (a causa di un prodotto scalare che da come risultato un valore negativo).

Nel caso di molteplici sorgenti luminose, denendo:

• Li - il vettore che va dal punto P alla sorgente luminosa i-esima normalizzato;

• Ri - il vettore direzione di un raggio proveniente dalla sorgente Li, incidente

nel punto P, riesso secondo la legge di riessione e normalizzato; • ALi - il vettore per il colore ambient dell'i-esima sorgente luminosa;

• DLi - il vettore per il colore diuse dell'i-esima sorgente luminosa;

• SLi - il vettore per il colore specular dell'i-esima sorgente luminosa;

• K - il numero di diverse sorgenti luminose;

la formula per l'illuminazione del punto P secondo il modello di Phong può essere facilmente estesa come segue:

CP = EM + K

X

i=1

[AM ⊗ ALi+ (DM ⊗ DLi) (Li· N ) + (SM ⊗ SLi) (V · Ri)n] (2.2)

Per capire l'eetto che le diverse proprietà del materiale e delle sorgenti luminose possono avere sul rendering, consideriamo una semplice mesh che rappresenta una teiera illuminata da una singola sorgente luminosa e vediamo cosa succede aggiun- gendo e rimuovendo i singoli termini (g. 2.1). Supponiamo che EM sia sempre

nullo in ogni sua componente (ossia la teiera non emette luce), tenendo presente che comunque si tratta di un semplice termine additivo. Nella gura abbiamo, in

ordine: solo la componente ambientale; solo la componente diuse; solo la compo- nente specular; componente ambientale e diuse; componente ambientale, diuse e specular.

Figura 2.1: Proprietà dei materiali e delle sorgenti luminose

Come si vede, con la combinazione di tutti i termini si riesce ad ottenere una percezione piuttosto convincente dell'oggetto tridimensionale (immagine 5).