Curve e superfici parametriche 24 ottobre 2012 Curve e superfici parametriche Roberto Pirrone
Sommario Generalità sulle curve parametriche Curve di Hermite 24 ottobre 2012 Generalità sulle curve parametriche Vincoli geometrici e funzioni di blending Curve di Hermite Curve di Bézier Curve B-spline Curve NURBS Superfici Parametriche Superfici di Hermite di Bézier e NURBS
Curve parametriche 24 ottobre 2012 Una curva parametrica è definita come una terna di funzioni di un parametro Q(u)=[x(u),y(u),z(u)] che fa da ascissa curvilinea lungo la curva stessa. Una superficie è definita in termini di una coppia di parametri che stabiliscono un sistema di coordinate curvilinee sulla superficie stessa: Q(u,v)= [x(u,v), y(u,v),z(u,v)]
In ogni segmento il parametro varia in [0,1] Curve parametriche 24 ottobre 2012 In ogni segmento il parametro varia in [0,1]
Curve parametriche 24 ottobre 2012 le tre funzioni del parametro sono di norma scelte come funzioni cubiche. Tale scelta deriva dalla proprietà delle cubiche di rappresentare curve non planari 3 è il minimo grado polinomiale che ci consente di rappresentare curve nello spazio le curve quadratiche necessitano di 3 coefficienti e quindi sono planari.
Curve parametriche 24 ottobre 2012 Le cubiche sono facilmente controllabili, mentre polinomi di grado superiore presentano delle oscillazioni che sono difficili da controllare in termini del parametro. Infine, dipendendo da 4 parametri, ci consentono di specificarle a partire da 4 punti di controllo o dagli estremi e dalle tangenti degli estremi.
Curve parametriche 24 ottobre 2012
Curve parametriche 24 ottobre 2012
Gradi di continuità 24 ottobre 2012 Curve complesse sono costituite dalla successione di più segmenti Il grado di continuità definisce il modo con cui due curve si toccano Continuità geometrica G0 le curve si toccano G1 le curve hanno gradiente in u con la stessa direzione e verso Continuità parametrica Cn: le derivate in u nel punto di giunzione sono uguali fino all’ordine n
Gradi di continuità 24 ottobre 2012
Rappresentazione con polinomi di blending 24 ottobre 2012 Una curva parametrica Q(u) può essere specificata dalla conoscenza di 4 vincoli geometrici Pi=[pix,piy,piz] i=0,…,3 posti nell’intorno della curva I vincoli possono rappresentare Punti di passaggio Tangenti negli estremi Punti di controllo esterni che influenzano la curvatura locale di Q(u) Un mix dei precedenti La scelta dei vincoli da luogo a diverse famiglie di curve
Rappresentazione con polinomi di blending 24 ottobre 2012 Polinomi di blending
Curve di Bézier 24 ottobre 2012
Algoritmo di De Casteljeau 24 ottobre 2012 Consente la valutazione della curva nel punto di ascissa curvilinea u0. Si basa su uno schema ricorsivo di valutazione del punto Q(u0) a partire dai punti di controllo Pi.
Proprietà delle curve di Bézier 24 ottobre 2012 Le curve di Bézier sono tali che per ogni valore di u la somma dei polinomi di blending è sempre 1. I Bi(u) si comportano come le coordinate baricentriche quindi il punto generico della curva Q(u) si trova sempre all’interno della chiusura convessa dei punti di controllo Pi.
Proprietà delle curve di Bézier 24 ottobre 2012 Chiusura convessa di n punti: il minimo poligono convesso che li raccorda tutti come vertici
Proprietà delle curve di Bézier 24 ottobre 2012
Proprietà delle curve di Bézier 24 ottobre 2012
Congiunzione di più segmenti di Bézier 24 ottobre 2012 Condizione di continuità: S3-S2=k(R1-R0)
Congiunzione di più segmenti di Bézier 24 ottobre 2012
Curve di Hermite 24 ottobre 2012
Relazione tra curve di Bézier e di Hermite 24 ottobre 2012 Nella formulazione di Hermite le curve parametriche non sono vincolate a giacere nella chiusura convessa dei punti di controllo
Curve B-spline Possono essere: Uniformi rispetto a u 24 ottobre 2012 Possono essere: Uniformi rispetto a u Non Uniformi rispetto a u Razionali (NURBS: Non-Uniform Rational B-Spline)
Proprietà delle B-spline uniformi 24 ottobre 2012 Il segmento B-spline uniforme Non passa per i punti di controllo e giace nella loro chiusura convessa E’ uniforme nel parametro passando dal segmento Qi(u) al segmento successivo Qi+1(u) Δiu=1, ui=0,1,2,… Knot: il valore ui ad ogni punto di giunzione Il segmento i-esimo è comunque valutato per 0 ≤ u ≤ 1
Proprietà delle B-spline uniformi 24 ottobre 2012 Ogni segmento di curva Qi(u) dipende da 4 punti di controllo Pi-3, Pi-2, Pi-1, Pi parzialmente condivisi con i 3 segmenti precedenti In generale, una curva è un insieme di m-2 segmenti Q3, Q4, …, Qm dipendenti da m+1 punti di controllo P0, P1,…, Pm con m>=3
Proprietà delle B-spline uniformi 24 ottobre 2012
Proprietà delle B-spline uniformi 24 ottobre 2012 Le funzioni di blending Bi(u) sono identicamente traslate lungo l’asse del parametro di intervallo in intervallo formando delle “funzioni di base” che si estendono su quattro intervalli Per m-2 segmenti sono necessari m+5 knot
Proprietà delle B-spline uniformi 24 ottobre 2012 Vettore uniforme dei knot: [0,1,2,3,4]
Molteplicità dei punti di controllo 24 ottobre 2012 La molteplicità tripla di un punto di controllo estremo forza il passaggio della curva per il punto stesso
Molteplicità dei punti di controllo 24 ottobre 2012 La molteplicità doppia di un punto di controllo non estremo “attrae” il segmento creando una forte curvatura locale
Molteplicità dei punti di controllo 24 ottobre 2012 La molteplicità tripla di un punto di controllo non estremo forza il passaggio della curva per il punto stesso creando una discontinuità
B-spline non uniformi 24 ottobre 2012 Il vettore dei knot può avere delle molteplicità, modificando la forma della funzione di base [0,1,2,3,4] [0,1,1,2,3] [0,1,1,1,2] [0,1,1,1,1]
B-spline non uniformi 24 ottobre 2012 Al crescere della molteplicità di ui, i∈[k,k+4] accade che: ui ≡ ui+1 Il segmento Qi(u) si annulla bi-k(u) si annulla Bk(u) cambia la sua forma
B-spline non uniformi 24 ottobre 2012 La molteplicità influenza molte funzioni di base: Es. [0, 0, 0, 0, 1, 2, 3, 3, 3, 3] 6 Bi(u) 0 0 0 0 1 B0(u) 0 0 0 1 2 B1(u) 0 0 1 2 3 B2(u) 0 1 2 3 3 B3(u) 1 2 3 3 3 B4(u) 2 3 3 3 3 B5(u)
Molteplicità dei knot 24 ottobre 2012
Molteplicità dei knot 24 ottobre 2012 Q4 si annulla e si crea un flesso perché Q3 e Q5 debbono giacere nelle rispettive chiusure convesse
Molteplicità dei knot 24 ottobre 2012 Q5 si annulla e si crea una cuspide perché Q3 e Q6 debbono giacere nelle rispettive chiusure convesse che condividono solo P3
Molteplicità dei knot 24 ottobre 2012 Q6 si annulla e si crea una discontinuità perché Q3 e Q7 debbono giacere nelle rispettive chiusure convesse che sono completamente disgiunte
Calcolo ricorsivo delle funzioni di base 24 ottobre 2012 Il calcolo è valido per B-spline uniformi e non di qualsiasi ordine. Le cubiche corrispondono all’ordine 4 cioè sono influenzate da 4 knot ciascuna.
Curve razionali 24 ottobre 2012 Una curva razionale R(u) n-dimensionale si ottiene attraverso una trasformazione proiettiva di tipo prospettico da una curva Q(u) definita in uno spazio in n+1 dimensioni Il processo di riduzione delle coordinate è quello di omogeneizzazione I punti della curva in Rn+1 si dividono per l’ultima coordinata Le funzioni del parametro in Rn divengono così delle funzioni razionali
Curve di Bézier razionali 24 ottobre 2012
Condizioni di controllo delle curve razionali 24 ottobre 2012 Le curve razionali possono essere controllate modificando i Pi e/o i wi (a) i punti di R(u) si muovono parallelamente alla direzione di spostamento di Pi (b) i punti di R(u) si muovono lungo raggi proiettori a partire dal punto di controllo cui è associato il peso Ad es. wi≡1 i=0,1,2,3 genera un arco di circonferenza
NURBS Non-Uniform Rational B-Splines 24 ottobre 2012 Non-Uniform Rational B-Splines Si controllano: Muovendo i punti di controllo Variando la molteplicità dei knot Modificando i pesi wi Hanno le stesse proprietà geometriche ed analitiche delle B-spline non razionali
Superfici parametriche 24 ottobre 2012 Sono l’estensione delle curve a due coordinate locali (u,v) Si devono intendere come costruite “accostando” tra loro curve parametriche in v a passi costanti in u lungo l’andamento di una curva in u o viceversa
Superfici di Bézier 24 ottobre 2012 16 punti di controllo
Effetto della modifica dei punti di controllo Superfici di Bézier 24 ottobre 2012 Effetto della modifica dei punti di controllo
Superfici di Bézier 24 ottobre 2012
Superfici di Bézier 24 ottobre 2012
Continuità delle superfici di Bézier 24 ottobre 2012 S(u,v) R(u,v)
Continuità delle superfici di Bézier 24 ottobre 2012 S(u,v) R(u,v)
Superfici B-spline 24 ottobre 2012 Necessitano di 16 punti di controllo, come nel caso precedente, che modulano 16 funzioni di base bi-variate Sono necessari 8 knot per ogni patch lungo entrambe le coordinate (u,v) 8x8 knot per ogni patch Le 16 funzioni di base hanno il loro picco nel quadrilatero centrale di questo reticolo
Superfici B-spline 24 ottobre 2012
Superfici B-spline Il patch è confinato all’interno dei quattro 24 ottobre 2012 Il patch è confinato all’interno dei quattro punti centrali di controllo e non li interpola
Superfici B-spline 24 ottobre 2012 Triplicando una riga di punti di controllo lungo un edge a u costante non si ottiene interpolazione
Superfici B-spline 24 ottobre 2012 Triplicando una riga di punti di controllo sia lungo un edge a u costante sia lungo un edge a v costante si ottiene interpolazione dei soli vertici collineari
Superfici B-spline 24 ottobre 2012 Triplicando una riga ed una colonna interna di punti di controllo in cui quello centrale sia stato alzato si ottengono creste Punti di controllo collineari danno luogo a creste più accentuate
Modellazione con superfici parametriche 24 ottobre 2012 Caso di una sezione circolare Il problema è la determinazione dei Pij che determinano la superficie a partire da un profilo 2D noto I punti del profilo dovranno essere “modulati” dai punti che definiscono la sezione circolare Si costruisce solo un quarto della superficie e poi si opera per simmetria La sezione circolare con Bézier si può costruire con i punti T00={0,1,0}, T10={c,1,0}, T20={1,c,0}, T30={1,0,0}, c≃0,552
Modellazione con superfici parametriche 24 ottobre 2012 I punti Pij (i=0,…,3 j=cost) si ottengono scalando i punti Ti0 di rj nel piano (x,y) e imponendo la quarta coordinata pari a zj Pij={rjTi0x, rjTi0y, zj}
Modellazione con superfici parametriche 24 ottobre 2012 La sezione trasversale viene interpolata tra il profilo iniziale e quello finale: Q(u,v)=Q(u,0)(1-r(v))+Q(u,1)r(v), r(0)=0, r(1)=1
Modellazione con superfici parametriche 24 ottobre 2012
Controllo delle superfici durante la modellazione 24 ottobre 2012 Per garantire la continuità in una mesh di patch è necessario che ogni estremo venga mosso collinearmente con i suoi otto vicini in modo da rendere continue le derivate Qu, Qv e Quv
Disegno dei poliedri di controllo 24 ottobre 2012 Si possono implementare due strategie Controllo fine per raffinamento della griglia dei punti di controllo Si ottiene maggior precisione per realizzare deformazioni locali della superficie Controllo globale attraverso la deformazione dei punti di controllo “annegati” in uno spazio parametrico controllato da una ipersuperficie di Bézier
Controllo fine Le deformazioni vengono confinate ai nuovi patch 24 ottobre 2012 Le deformazioni vengono confinate ai nuovi patch definiti per inserzione dei Rij
Controllo globale 24 ottobre 2012 Si consideri una curva Q(t) controllata da quattro punti Pi: I punti possono essere pensati come appartenenti ad uno spazio bivariato (u,v) che variano in [0..1] Se definiamo una griglia complanare di punti di controllo Rij in (u,v) questi definiscono un patch di Bézier planare La curva Q(t) appartiene interamente allo spazio così definito e, se modifichiamo i punti di controllo Rij sempre in modo complanare, questo induce una deformazione nei punti Pi e quindi, globalmente in Q(t) Nel caso 3D la superficie viene annegata in un iperspazio trivariato di Bézier
Controllo globale 24 ottobre 2012
Fitting di superfici 24 ottobre 2012 Il fitting di curve o superfici con B-spline è importante in CG Modellazione di nuvole di punti acquisiti con range finder Interpolazione “dolce” di traiettorie nell’animazione Si procederà ad interpolare curve B-spline a u costante e a v costante creando una mesh di curve La mesh di curve viene trasformata in una sequenza di patch di Bézier più semplici da controllare
Fitting di superfici 24 ottobre 2012
Fitting di superfici 24 ottobre 2012 Il sistema precedente ha m-1 equazioni e m+1 incognite Si risolve aggiungendo altri due punti di controllo da interpolare L’interpolazione avviene separatamente lungo u e lungo v dando luogo ad una rete di punti di controllo B-spline Qi
Fitting di superfici 24 ottobre 2012 La conversione B-spline Bézier avviene trasformando i soli punti di controllo attraverso le matrici di base La forma analitica delle superfici in funzione di u e v è la stessa [P0 P1 P2 P3]=BB-1BS[Q0 Q1 Q2 Q3] Per ogni quadrupla di punti di controllo B-spline Qk,…,Qk+3 si genera una quadrupla di punti Bézier eliminando Qk ed inserendo Qk+4 Così si generano i punti di controllo sui contorni delle patch: quelli interni si costruiscono sulla base di vincoli di continuità tra le superfici
Fitting di superfici 24 ottobre 2012