1 / 27

Applicare il modello locale Shading e Smoothing

Applicare il modello locale Shading e Smoothing. Daniele Marini, Maurizio Rossi. Shading e smoothing. Shading: raffigurare poliedri assegnando alle facce una luminosità proporzionale alla luce che ricevono

Download Presentation

Applicare il modello locale Shading e Smoothing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Applicare il modello localeShading 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. 1 - denso n1 < n2 + denso n1 n2 2 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:

  12. n1 • denso • + denso 90° TIR n2 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 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 smoothing: 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. Descriviamo i lati in forma parametrica, a è il parametro Interpolazione bilineare Interpoliamo lungo Una linea di scansione del poligono

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

  24. 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 Gouraud vs. Phong smoothing

  25. Confronti • Confronto tra Flat, Gouraud e Phong per un modello poligonale (triangoli) a bassa risoluzioneFlat 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.)

More Related