Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
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.)
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.