La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Curve e Superfici Il mondo non è fatto di rette e poligoni.

Presentazioni simili


Presentazione sul tema: "Curve e Superfici Il mondo non è fatto di rette e poligoni."— Transcript della presentazione:

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

2 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). Curve e Superfici

3 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. Curve e Superfici 3

4 Rappresentazione Esplicita
Polygon Mesh: lista di poligoni. 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. Curve e Superfici 4

5 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. Curve e Superfici

6 Equazioni del Piano Usando polygon meshes un’operazione fondamentale e’ di calcolare il piano di un poligono. I coefficienti dell’EQ: Ax + By + Cz + D = 0 si possono trovare calcolando l’area delle proiezioni sui piani coordinati. Per esempio, il valore di C per un triangolo è dato da: Curve e Superfici

7 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 nell’avere 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 Curve e Superfici 7

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

9 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. Curve e Superfici

10 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) = ax t3 + bx t2 + cx t + dx y(t) = ay t3 + by t2 + cy t + dy z(t) = az t3 + bz t2 + cz t + dz In forma matriciale: Q(t) = C*T dove T=[t3 t2 t 1]T e ax bx cx dx C = ay by cy dy az bz cz dz Curve e Superfici 9

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

12 Continuità tra Segmenti
Se 2 segmenti si incontrano: G0 geometric continuity. Se hanno anche la stessa tangente nel punto di contatto: G1 geometric continuity. Se vettori tangenti uguali C1 continuity Se dnQ(t)/dt n uguali C n continuity (d Q / dt é la velocità d2 Q /dt2 é l’ accelerazione) Curve e Superfici

13 Differenze C-G In generale C1 implica G1 poichè impone stessa direzione e grandezza dei vettori tangenti La differenza tra continuità C1 e continuità G1 è importante solo se la derivata in t è significativa. Le derivate rispetto a t sono invisibili Y1(t) =4t2+2t+1 0<t<1 Y2 (t) =16t2+4t <t<1/2 [dY1 / dt ] t=0 = 2 [dY2/ dt ] t=0 = 4 Curve e Superfici

14 Tipi Curve Parametriche
Tipi curve: Hermite 2 (estremi + vettori tangenti). Bezier 2 estremi + 2 punti di controllo. Splines 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 Curve e Superfici 13

15 Curve di Hermite Geometry vector : G = [P1 P4 R1 R4] 2 estremi
2 vettori tangenti La base matrix viene : MH = Si ottiene imponendo che ogni componente (x, y o z) soddisfi i vincoli geometrici. Curve e Superfici 14

16 Hermite Blending Functions
Riscrivendo Q ottengo 4 blending functions Curve e Superfici

17 Esempi Hermite P1,P4,R4 fissi.
R1 stessa direzione ma ampiezze diverse. R1 ampiezza fissa cambia direzione. Curve e Superfici

18 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);} } Curve e Superfici 18

19 Curve di Bezier Fisso i 2 estremi + 2 punti di controllo.
Estremi: P1 P4 Punti di controllo: P2 P3 Relazione con Hermite: R1 = 3(P2 - P1) R2 = 3(P4 - P3) Curve e Superfici

20 Polinomi di Bernstein Blending functions per Bezier:
sempre positive 0 <= t <= 1 BB1+BB2+BB3+BB4 = 1 Quindi hanno la proprietà del convex hull Continuità: se P3-P4-P5 allineati G1 se P4-P3=P5-P C1 Curve e Superfici

21 Uniform Nonrational B-Splines
Natural cubic splines: curva che interpola i control points con continuità C0, C1, 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à (C2). Però non interpolano nessuno dei punti di controllo. Curve e Superfici

22 Uniform Nonrational B-Splines
Punti di controllo condivisi tra segmenti adiacenti: m +1 control points P0 P1 ....Pm m-2 segmenti Q3 Q4 ...Qm un solo t t i <= t < t i per Q i punti di contatto knot per t = t3 , t 4, t 5... t m-1 , t m (o estremi) Curve e Superfici

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

24 Base Matrix La matrice di base vale: -1 3 -3 1 MBS = 1/6 * 3 -6 0 4
MBS = 1/6 * Curve e Superfici

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

26 (S)Vantaggi Vantaggi: alta continuità C0, C1, C2.
Svantaggi: difficili da controllare poiché non interpolano alcun punto. Per migliorare il controllo: duplico punti di controllo attenzione: posso perdere in continuità G1. Curve e Superfici

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

28 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) ti <= t < ti <= i <= m Bi,J= funzione di blending di ordine j per il punto Pi definita con delle equazioni di ricorrenza (vedi libro pg 347). Le B-Splines non uniformi hanno ancora la proprietà del convex hull. Curve e Superfici

29 Multiple Knots Aumentare la molteplicità dei knots ha due effetti:
1) Si aumenta il controllo sul knot 2) Si riduce la continuità Se ti = ti+1 allora il knot sta sul segmento congiungente Pi-2 e Pi-1 e la continuità scende a C1. Se ti = ti+1 = ti+2 allora il knot coincide con Pi-1 e la continuità scende a C0. Se ti = ti+1 = ti+2 = ti+3 allora la curva si interrompe e si perde la continuità. Curve e Superfici

30 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.). Curve e Superfici

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

32 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)=[G1(t) G2(t) G3(t) G4(t)]*M*S dove Gi(t) è a sua volta una curva parametrica cubica. Quindi Gi (t) = Gi * M * T Trasponendo otteniamo GiT (t) = TT * MT * GiT L’equazione complessiva è: Q(s,t) = TT * MT * G * M * S dove G è una matrice 4*4. Curve e Superfici

33 Superfici di Hermite Caratterizzate da: P1(t) P4(t) 2 curve estreme
R1 (t) R4(t) 2 curve tangenti Ogni coordinata può essere scritta: x(t) = TT * MHT * GHx * MH * S y(t) = TT * MHT * GHy * MH * S z(t) = TT * MHT * GHz * MH * S GHx GHy GHz sono costanti ed hanno il ruolo di GH per le curve. Curve e Superfici

34 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à C1 e G1 imponendo restrizioni alle matrici G. Curve e Superfici

35 Superfici di Bezier Le informazioni sono ora 16 control points. Alla congiunzione ho continuità G1 se: P13-P14-P15 P23-P24-P25 P33-P34-P35 P43-P44-P45 sono collineari Curve e Superfici

36 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 l’equazione della normale è un polinomio di quinto grado nelle due variabili s e t. Questo rende il suo calcolo abbastanza costoso. Curve e Superfici

37 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. Curve e Superfici

38 Superfici Quadriche Definite da equazioni implicite:
f(x,y) = ax2 + by2 + cz2 + 2dxy + 2eyz + 2f xz + 2gx + 2hy + 2jz +k = 0 o in alternativa: PT * 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. Curve e Superfici

39 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: Modelli frattali Modelli basati su una grammatica Curve e Superfici

40 Modelli Frattali Basati sull’idea di self-similarity. Partendo da una semplice figura iniziale, ogni segmento viene rimpiazzato da una copia ridotta dell’originale. Curve e Superfici

41 Julia-Fatou set Curve e Superfici

42 Mandelbrot Set Curve e Superfici

43 Modelli Frattali (2) 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. Curve e Superfici

44 Grammatiche Estese Usando grammatiche più estese si possono ottenere modelli per oggetti come: Curve e Superfici


Scaricare ppt "Curve e Superfici Il mondo non è fatto di rette e poligoni."

Presentazioni simili


Annunci Google