La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Informatica Grafica Curve e Superfici1 l Il mondo non è fatto di rette e poligoni. l Non é sempre ragionevole approssimare curve con spezzate. l Moltissime.

Presentazioni simili


Presentazione sul tema: "Informatica Grafica Curve e Superfici1 l Il mondo non è fatto di rette e poligoni. l Non é sempre ragionevole approssimare curve con spezzate. l Moltissime."— Transcript della presentazione:

1 Informatica Grafica Curve e Superfici1 l Il mondo non è fatto di rette e poligoni. l Non é sempre ragionevole approssimare curve con spezzate. l Moltissime le rappresentazioni proposte: polygon mesh superfici parametriche (curve) superfici quadriche l Cominciamo con modellazione di curve e superfici, poi vedremo modellazione solida.

2 Informatica Grafica Curve e Superfici2 Polygon Mesh Insieme di superfici poligonali planari limitate: rappresentano esattamente alcune figure, approssimano bene altre (fig. sinistra). Buone approssimazioni sono sempre possibili ma spesso sono costose (fig. destra per una sezione).

3 Informatica Grafica Curve e Superfici3 Rappresentazione di Polygon Mesh Aspetto fondamentale: efficienza spazio / tempo. Per ottimizzare bisogna individuare quali sono le operazioni più frequenti. Noi vedremo 3 rappresentazioni: Esplicita Con puntatori ai vertici Con puntatori ai lati Ognuna ha vantaggi e svantaggi. La scelta dipende dalle operazioni richieste.

4 Informatica Grafica Curve e Superfici4 Rappresentazione Esplicita l Polygon Mesh: lista di poligoni. l Poligono: lista di vertici. Problemi : - Spreco spazio per duplicazione vertici. - Dispendioso trovare tutti i poligoni che hanno un determinato vertice. Questo richiede di ordinare tutte le liste e cercare un elemento in tutte le liste.

5 Informatica Grafica Curve e Superfici5 Rappresentazioni con Puntatori Puntatori a lista di vertici : rappresentazione piu usata Problemi : inefficiente trovare i poligoni con un lato in comune. Lati in comune sono disegnati 2 volte. Puntatori a lista di lati : Problemi: 2 poligoni per lato va bene per molte figure, ma può essere maggiore.

6 Informatica Grafica Curve e Superfici6 Equazioni del Piano Usando polygon meshes unoperazione fondamentale e di calcolare il piano di un poligono. I coefficienti dellEQ: Ax + By + Cz + D = 0 si possono trovare calcolando larea delle proiezioni sui piani coordinati. Per esempio, il valore di C per un triangolo è dato da:

7 Informatica Grafica Curve e Superfici7 Curve di Grado Superiore Buone approssimazioni con polylines richiedono molti punti. Alternativa : approssimare con funzioni di grado superiore. Molti metodi possibili. Il più semplice consiste nellavere Y e Z come funzioni esplicite di x : Y=f(x)Z=f(x) Problemi :non adatto a cerchi, ellissi,..… non si preserva se ruotiamo non adatto a curve con tangente verticale

8 Informatica Grafica Curve e Superfici8 Equazioni Implicite Curva definita implicitamente f(X,Y,Z) = 0. Problemi: l difficile rappresentare mezza circonferenza. l difficile calcolare la tangente. l difficile congiungere più segmenti.

9 Informatica Grafica Curve e Superfici9 Rappresentazioni Parametriche Rappresentazioni implicite, con X, Y e Z funzioni di un parametro t. Normalmente t va da 0 a 1. X=X(t)Y=Y(t) Z=Z(t) Una curva è una lista di segmenti dove ogni segmento è definito da 3 funzioni parametriche (cubiche in t). Cubiche perchè si possono fissare 2 endpoints con relative derivate e le curve non sono necessariamente planari.

10 Informatica Grafica Curve e Superfici10 Curve Cubiche Parametriche Curve di grado più alto (>4) sono difficili da controllare, e usate solo in poche applicazioni. Forma generale (cubica) Q (t) = [x(t) y(t) z(t)] T = x(t) = a x t 3 + b x t 2 + c x t + d x y(t) = a y t 3 + b y t 2 + c y t + d y z(t) = a z t 3 + b z t 2 + c z t + d z In forma matriciale: Q (t) = C * T dove T =[t 3 t 2 t 1] T e a x b x c x d x C = a y b y c y d y a z b z c z d z

11 Informatica Grafica Curve e Superfici11 Esempio in 2D 2 segmenti 2D congiunti. Notate che la curva nel piano xy non è una funzione nè di x nè di y.

12 Informatica Grafica Curve e Superfici12 Continuità tra Segmenti Se 2 segmenti si incontrano: G 0 geometric continuity. Se hanno anche la stessa tangente nel punto di contatto: G 1 geometric continuity. Se vettori tangenti uguali C 1 continuity Se d n Q(t)/dt n uguali C n continuity (d Q / dt é la velocità d 2 Q /dt 2 é l accelerazione)

13 Informatica Grafica Curve e Superfici13 Differenze C-G In generale C 1 implica G 1 poichè impone stessa direzione e grandezza dei vettori tangenti La differenza tra continuità C 1 e continuità G 1 è importante solo se la derivata in t è significativa. Le derivate rispetto a t sono invisibili Y 1 (t) =4t 2 +2t+1 0

14 Informatica Grafica Curve e Superfici14 Tipi Curve Parametriche Tipi curve: Hermite 2 (estremi + vettori tangenti). Bezier 2 estremi + 2 punti di controllo. Splines 4 punti di controllo Riscriviamo l equazione di Q (t) = G * M * T M è la basis matrix e G è il geometry vector. G contiene le specifiche dei vincoli geometrici, mentre M è costante per ogni tipo. Le 3 funzioni risultanti dal prodotto M * T vengono chiamate blending functions

15 Informatica Grafica Curve e Superfici15 Curve di Hermite Geometry vector :G = [P 1 P 4 R 1 R 4 ] 2 estremi 2 vettori tangenti La base matrix viene : M H = Si ottiene imponendo che ogni componente (x, y o z) soddisfi i vincoli geometrici.

16 Informatica Grafica Curve e Superfici16 Hermite Blending Functions Riscrivendo Q ottengo 4 blending functions

17 Informatica Grafica Curve e Superfici17 Esempi Hermite P 1,P 4,R 4 fissi. R 1 stessa direzione ma ampiezze diverse. P 1,P 4,R 4 fissi. R 1 ampiezza fissa cambia direzione.

18 Informatica Grafica Curve e Superfici18 Disegno Curve Parametriche typedef float CoefficientArray[4]; void DrawCurve(CoefficientArray cx, CoefficientArray cy, CoefficientArray cz, int n) {float x, y, z, delta, t, t2, t3; int i; MoveAbs3(cx[3], cy[3], cz[3]); delta = 1.0/n; for( i = 1; i <= n; i++ ){t = i*delta; t2 = t*t; t3 = t2*t; x = cx[0]*t3 + cx[1]*t2 + cx[2]*t + cx[3]; y = cy[0]*t3 + cy[1]*t2 + cy[2]*t + cy[3]; z = cz[0]*t3 + cz[1]*t2 + cz[2]*t + cz[3]; DrawAbs3(x, y,z);} }

19 Informatica Grafica Curve e Superfici19 Curve di Bezier Fisso i 2 estremi + 2 punti di controllo. Estremi: P 1 P 4 Punti di controllo: P 2 P 3 Relazione con Hermite: R 1 = 3(P 2 - P 1 ) R 2 = 3(P 4 - P 3 )

20 Informatica Grafica Curve e Superfici20 Polinomi di Bernstein Blending functions per Bezier: sempre positive 0 <= t <= 1 B B 1 +B B 2 +B B 3 +B B 4 = 1 Quindi hanno la proprietà del convex hull Continuità: se P 3 -P 4 -P 5 allineati G 1 seP 4 -P 3 =P 5 -P 4 C 1

21 Informatica Grafica Curve e Superfici21 Uniform Nonrational B-Splines Natural cubic splines : curva che interpola i control points con continuità C 0, C 1, C 2. Ottima continuità, ma non hanno la proprietà di località. Ogni tratto della curva dipende da tutti i punti di controllo. B-splines : splines con controllo locale e stessa continuità (C 2 ). Però non interpolano nessuno dei punti di controllo.

22 Informatica Grafica Curve e Superfici22 Uniform Nonrational B-Splines Punti di controllo condivisi tra segmenti adiacenti: m +1 control points P 0 P 1....P m m-2 segmenti Q 3 Q 4...Q m un solo t t i <= t < t i + 1 per Q i punti di contatto knot per t = t 3, t 4, t 5... t m-1, t m (o estremi)

23 Informatica Grafica Curve e Superfici23 B-Splines Uniformi Uniforme vuol dire che t i+1 -t i è costante. Possiamo assumere t 3 = 0 e t i+1 - t i =1. Il segmento Q i é definito dai punti P i-3, P i-2, P i-1, P i che sono il suo geometry vector. Definendo T i =[(t-t i ) 3 (t-t i ) 2 (t-t i ) 1] T abbiamo per ogni segmento: Q i (t) = G BS i * M BS * T i Spostando un control point modifico al più 4 segmenti.

24 Informatica Grafica Curve e Superfici24 Base Matrix l La matrice di base vale: M BS = 1/6 *

25 Informatica Grafica Curve e Superfici25 B-Spline Blending Functions Moltiplicando M * T ottengo le blending functions [(1-t) 3 ]/6 [3t 3 -6t 2 +4]/6 [-3t 3 +3t 2 +3t+1]/6t 3 /6 Nota : La somma è pari a 1 e sono tutte non negative quindi vale la proprietà del convex hull.

26 Informatica Grafica Curve e Superfici26 (S)Vantaggi Vantaggi :alta continuità C 0, C 1, C 2. Svantaggi :difficili da controllare poiché non interpolano alcun punto. Per migliorare il controllo: duplico punti di controllo attenzione : posso perdere in continuità G 1.

27 Informatica Grafica Curve e Superfici27 Non Uniform B-Splines Differenze :t i+1 -t i non è costante. Vantaggi :si può controllare la continuità (da C 2 a nessuna continuità) si possono interpolare punti (solo se C 0 ) si possono interpolare estremi Control points P P m Knots t t m+4 I knots possono ripetersi. Unico vincolo è che i valori di t siano non decrescenti.

28 Informatica Grafica Curve e Superfici28 Nonuniform B-Splines (2) Ogni segmento è definito da Q i (t) = P i-3 *B i-3,4 (t)+P i-2 *B i-2,4 (t)+P i-1 *B i-1,4 (t)+P i *B i,4 (t) t i <= t < t i+1 3 <= i <= m B i,J = funzione di blending di ordine j per il punto P i definita con delle equazioni di ricorrenza (vedi libro pg 347). Le B-Splines non uniformi hanno ancora la proprietà del convex hull.

29 Informatica Grafica Curve e Superfici29 Multiple Knots Aumentare la molteplicità dei knots ha due effetti: 1)Si aumenta il controllo sul knot 2) Si riduce la continuità Se t i = t i+1 allora il knot sta sul segmento congiungente P i-2 e P i-1 e la continuità scende a C 1. Se t i = t i+1 = t i+2 allora il knot coincide con P i-1 e la continuità scende a C 0. Se t i = t i+1 = t i+2 = t i+3 allora la curva si interrompe e si perde la continuità.

30 Informatica Grafica Curve e Superfici30 Nonuniform Rational B-Splines NURBS Rational significa che le equazioni sono rapporti di 2 polinomi: x(t) = X(t)/W(t); y(t) = Y(t)/W(t); z(t) = Z(t)/W(t) In coordinate omogenee: Q (t) = [X(t) Y(t) Z(t) W(t)] T Vantaggi : 1) Le NURBS sono invarianti rispetto a: rotazioni, scalamenti, traslazioni e trasformazioni prospettiche 2) Con le NURBS possiamo definire precisamente le coniche (ellissi, cerchi etc.).

31 Informatica Grafica Curve e Superfici31 Riconoscimento Curve Le curve viste sono facilmente utilizzabili per descrivere profili risultanti dalla digitalizzazione di disegni e figure. Per esempio, usando Bezier otteniamo:

32 Informatica Grafica Curve e Superfici32 Superfici Parametriche Bicubiche Superfici definite da equazioni con 2 parametri: s, t Se si ha dipendenza cubica da s e t allora sono dette bicubiche. Forma generale: Q (s,t)=[G 1 (t) G 2 (t) G 3 (t) G 4 (t)]* M * S dove G i (t) è a sua volta una curva parametrica cubica. Quindi G i (t) = G i * M * T Trasponendo otteniamo G i T (t) = T T * M T * G i T Lequazione complessiva è: Q(s,t) = T T * M T * G * M * S dove G è una matrice 4*4.

33 Informatica Grafica Curve e Superfici33 Superfici di Hermite Caratterizzate da: P 1 (t) P 4 (t) 2 curve estreme R 1 (t) R 4 (t) 2 curve tangenti Ogni coordinata può essere scritta: x(t) = T T * M H T * G Hx * M H * S y(t) = T T * M H T * G Hy * M H * S z(t) = T T * M H T * G Hz * M H * S G Hx G Hy G Hz sono costanti ed hanno il ruolo di G H per le curve.

34 Informatica Grafica Curve e Superfici34 Congiungere Patches Ogni superfici così definita si chiama patch. Congiungere patches è come congiungere due segmenti di curva. Proprietà fondamentale è la continuità alla giunzione. Possiamo ottenere continuità C 1 e G 1 imponendo restrizioni alle matrici G.

35 Informatica Grafica Curve e Superfici35 Superfici di Bezier Le informazioni sono ora 16 control points. Alla congiunzione ho continuità G 1 se: P 13 -P 14 -P 15 P 23 -P 24 -P 25 P 33 -P 34 -P 35 P 43 -P 44 -P 45 sono collineari

36 Informatica Grafica Curve e Superfici36 Normali Trovare le normali ad una superfice non è matematicamente difficile: Per trovare la nomale basta calcolare dQ(s,t)/ds e dQ(s,t)/dt. Dal loro prodotto vettoriale otteniamo la tangente. Purtroppo lequazione della normale è un polinomio di quinto grado nelle due variabili s e t. Questo rende il suo calcolo abbastanza costoso.

37 Informatica Grafica Curve e Superfici37 Disegno di Superfici Metodo di valutazione iterativa: per tutti i valori di s per tutti i valori di t calcola il punto Q(s,t) Il costo computazionale è elevato. Spesso si usano tecniche di forward-difference.

38 Informatica Grafica Curve e Superfici38 Superfici Quadriche Definite da equazioni implicite: f(x,y) = ax 2 + by 2 + cz 2 + 2dxy + 2eyz + 2f xz + 2gx + 2hy + 2jz +k = 0 o in alternativa: P T * Q * P = 0. Vantaggi : Sono semplificate le operazioni di: 1) Calcolo della normale 2) Verifca di appartenenza di un punto alla superficie 3) Calcolo di z dati x ed y 4) Calcolo intersezioni con altra superfice Gli svantaggi sono quelli legati alle equazioni implicite.

39 Informatica Grafica Curve e Superfici39 Modelli Specializzati I modelli visti sinora sono generali, ma non permettono rappresentazioni molto accurate di oggetti complessi del mondo reale. Vediamo brevemente 2 metodi specializzati adatti ad alcune situazioni particolari: l Modelli frattali l Modelli basati su una grammatica

40 Informatica Grafica Curve e Superfici40 Modelli Frattali Basati sullidea di self-similarity. Partendo da una semplice figura iniziale, ogni segmento viene rimpiazzato da una copia ridotta delloriginale.

41 Informatica Grafica Curve e Superfici41 Julia-Fatou set

42 Informatica Grafica Curve e Superfici42 Mandelbrot Set

43 Informatica Grafica Curve e Superfici43 Modelli Frattali (2) l Modelli frattali sono stati spesso utilizzati per modellare il profilo delle montagne. In modelli 2D ad ogni passo il segmento viene diviso in 2 ed il punto centrale viene alzato di una quantità random.

44 Informatica Grafica Curve e Superfici44 Grammatiche Estese l Usando grammatiche più estese si possono ottenere modelli per oggetti come:


Scaricare ppt "Informatica Grafica Curve e Superfici1 l Il mondo non è fatto di rette e poligoni. l Non é sempre ragionevole approssimare curve con spezzate. l Moltissime."

Presentazioni simili


Annunci Google