La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Daniele Marini, Maurizio Rossi

Presentazioni simili


Presentazione sul tema: "Daniele Marini, Maurizio Rossi"— Transcript della presentazione:

1 Daniele Marini, Maurizio Rossi
Shading e Smoothing Daniele Marini, Maurizio Rossi

2 Shading e smoothing Shading: raffigurare poliedri assegnando alle facce una luminosità proporzionale alla luce che ricevono Smoothing: simulare superfici curve descritte da poliedri, mediante tecniche di interpolazione

3 Shading e somoothing (cont)
La luminosità che giunge su una faccia dipende dal suo orientamento verso la sorgente di luce (legge di Lambert) È essenziale conoscere la normale di una faccia Vari metodi di calcolo del vettore n normale ad una superficie

4 Calcoli sui vettori Vettore normale
equazione del piano: ax+by+cz+d=0; si può anche scrivere come luogo: e p è un qualunque punto nel piano; il vettore n è dato da:

5 In generale possiamo partire da tre punti non allineati: p0, p1, p2 con i quali determiniamo il piano (superfici approssimate con poliedri triangolarizzati). Le differenze p2 - p0 e p1 - p0 sono coplanari e il loro prodotto vettoriale dà la normale: n = (p2 - p0) x (p1 - p0) L’ordine è rilevante

6 Il calcolo delle normali di superfici curve dipende da come la superficie è rappresentata, ma in generale si stima un gradiente. Es. sfera - equazione f(x,y,z): x2 + y2 + z2 -1=0 In forma vettoriale: f(p): p·p -1 = 0 Il vettore gradiente è dato da:

7 Se la sfera è rappresentata in forma parametrica il metodo di calcolo cambia:
La normale si può ricavare dal piano tangente in p:

8 Individuano due vettori
tangenti il cui prodotto vettore individua la normale - poiché ci interessa solo la direzione si può dividere per cos(u) ottenendo un vettore unitario

9 Quando calcolare le normali?
L’architettura a pipe line dei sistemi di rendering prevede che la normale di una faccia sia nota a priori (viene elaborato un vertice per volta e non tutta l’informazione è disponibile) In generale è compito del programma applicativo calcolare la normale. Le librerie grafiche come OpenGL o linguaggi come VRML permettono di associare a ogni vertice o faccia una normale (che dobbiamo calcolare noi nel programma applicativo) BlueMoon esegue il calcolo delle normali partendo dai dati di geometria

10 Ancora sulle normali Il calcolo delle normali ha anche interesse per simulare effetti di trasparenza (che non fanno parte del problema base dello shading ...) per poter simulare correttamente il fenomeno della rifrazione

11 Trasmissione: legge di Snell
La luce che colpisce un materiale può essere: Assorbita (trasformata in un’altra forma di energia: calore….) Riflessa (diffusamente e/o specularmente) Trasmessa (diffusamente e/o specularmente) Trasmissione speculare: Rifrazione, governata dalla legge di Snell: 1 2 n1 n2 - denso n1 < n2 + denso

12 Rifrazione: TIR Fenomeno: riflessione interna totale (TIR)
La luce che proviene da un mezzo più denso ad uno meno denso con direzione quasi parallela alla superficie viene riflessa Es. fibre ottiche 90° TIR n1 n2 denso + denso 1 > 90° comporta 2 > TIR con TIR = arcsen(n1 / n2)

13 La geometria della riflessione
P punto campione sulla sup. N normale alla sup. in P V direzione da P a COP L direzione da P a sorgente di luce (se estesa è un punto campione su essa) R direzione di riflessione speculare della sorgente calcolata da N e L

14 Shading di poligoni (Flat shading)
N, V ed L variano su ogni poligono Se si assume osservatore “distante” e sorgente di luce distante V e L sono costanti Anche N è quindi costante sull’intero poligono Il calcolo di shading viene fatto per l’intero poligono una sola volta

15 Flat shading Flat shading: i poligoni vengono colorati uniformemente indipendentemente dalla posizione dell’osservatore La luminosità del colore del poligono è determinata dall’angolo tra la direzione della normale al poligono e la direzione da cui proviene la luce È molto veloce e consente animazioni real time

16 Flat shading di poliedri
È importante sfruttare informazioni già calcolate nel passare da una faccia alla successiva Si possono organizzare i triangoli di un poliedro in triangle strip, il che permette di risparmiare informazioni sulle normali, ad es. OGL usa la normale del terzo vertice per il primo triangolo, la normale del quarto per il secondo e così via

17 Triangle strip

18 Effetti di flat shading
Bande di Mach

19 Smooth shading (interpolato)
Ci sono due tecniche di interpolazione: Interpolazione di Gouraud Implementata a livello hardware su tutte le recenti schede grafiche 3D Interpolazione con modello di Phong Implementata a livello hardware solo sulle più recenti e costose schede grafiche 3D

20 Gouraud Gouraud shading: i poligoni vengono colorati indipendentemente dalla posizione dell’osservatore Si considerano le normali alla superficie nei vertici del poligono e per ognuno dei vertici si calcola l’intensità Nei punti interni al poligono l’intensità non è costante ma determinata dalla interpolazione bilineare di quella nei vertici La continuità cromatica è garantita tra poligoni adiacenti

21 Gouraud Gouraud shading: attenzione!
Sebbene la continuità cromatica tra poligoni adiacenti renda l’aspetto di una superficie curva, questa è sempre e solo poligonale! Si vede dai contorni!

22 Interpolazione bilineare
Interpoliamo lungo Una linea di scansione del poligono Descriviamo i lati in forma parametrica, a è il parametro

23 Phong Smoothing Basato sull’interpolazione delle normali
Il colore si calcola alla fine sul singolo pixel

24 Gouraud vs. Phong shading
hardware veloce continuo fino al I ordine effetti lucentezza limitati (migliorano se si aumenta la triangolazione) Software (hw sulle nuove sch. 3D) Più lento continuo fino al II ordine si può applicare modello di Phong per lucentezza

25 Confronti Confronto tra Flat, Gouraud e Phong per un modello poligonale (triangoli) a bassa risoluzione Flat Gouraud Phong

26 Le luci nelle librerie Spesso nelle librerie grafiche (es. OGL) la definizione delle sorgenti è più complessa: In OGL i parametri sono: Posizione (direzione) della sorgente Livelli di Ambiente Diffusa Speculare Associati alla sorgente Ovvero in OGL ogni sorgente produce un contributo di luce ambiente, diffusiva e/o speculare la specularità e diffusività dovrebbero essere viceversa proprietà delle superfici!

27 Caratterizzare i materiali
Occorre assegnare alle superfici caratteristiche di riflettività: diffusiva speculare Rispettando il modello di illuminazione scelto Nei modelli locali la riflettività non ha riferimento colorimetrici o fotometrici, occorrono modelli più avanzati (BRDF BSSRDF ecc.)


Scaricare ppt "Daniele Marini, Maurizio Rossi"

Presentazioni simili


Annunci Google