Modelli di Illuminazione Modelli locali Daniele Marini Corso Di Programmazione Grafica aa2006/2007.
Interpolazione Corso di Programmazione Grafica e Laboratorio Daniele Marini.
-
Upload
fredo-lentini -
Category
Documents
-
view
216 -
download
0
Transcript of Interpolazione Corso di Programmazione Grafica e Laboratorio Daniele Marini.
Interpolazione
Corso di Programmazione Grafica e Laboratorio
Daniele Marini
Interpolazione
• Essenziale nei problemi di animazione:– date due posizioni “chiave” relative al
fotogramma al tempo t0 e al tempo t1 determinare le posizioni intermedie relative a ogni singolo fotogramma
– Occorre garantire regolarità nel movimento– Le posizioni possono riguardare oggetti,
fotocamera o altro
Interpolazione Lineare
• Definisce un percorso rettilineo tra due punti in uno spazio n-dimensionale
• Una dimensione di interpolazione
Interpolazione Lineare
• Data due punti P1 e P2 definisco una funzione nel parametro t[0,1]
P(t) = P1 + t (P2 – P1) = (1-t)P1 + t P2 P1
P2
t=0
t=1
P(t)
Interpolazione Lineare
• Nel piano, dati due punti (x1,y1) e (x2, y2) si vuole calcolare (xP, yP) conoscendo il valore di xP
x1 x2xP
y1
y2yP = ?
dy y2-y1
Interpolazione Lineare
1
2 1 2 1 1
1 2 1 2 1
2 1 11
2 1
valgono i rapporti:
( )( )
quindi
( )( )
P
P
P
PP
y y dy
y y y y x xdydy
x x x x x x
y y x xy y
x x
Interpolazione Bi-lineare
• Considero due dimensioni di interpolazione• Utilizzato per esempio all’interno di griglie
regolari (es. texture)• Peso i punti con
delle aree
P3 P4
P1 P2
P
A1
A3
A2
A4
1 1 2 2 3 3 4 4
1 2 3 4
A P A P A P A PP
A A A A
Interpolazione quadratica e cubica
• L’interpolazione lineare calcola i valori intermedi utilizzando l’equazione della retta (grado 1) passante per i due punti
• Possiamo considerare anche equazioni di grado più alto (secondo o terzo) per ottenere interpolazioni più precise, ma abbiamo bisogno di più punti
Curve parametriche
• Quando interpolo tra due punti l’interpolazione lineare è sufficiente
• Quando ho più punti posso usare interpolazione lineare tra ogni coppia di punti successivi ma ottengo un percorso che presenta discontinuità di curvatura nei punti
Curve parametriche
• Per risolvere il problema posso utilizzare una curva di grado stabilito che interpoli o approssimi i punti.
• La curva avrà equazione
• Esistono differenti schemi di costruzione della curva (Bezier, B-Spline, NURBS,etc)
1 2 max( ) ( , ,..., ; ) [0, ]NC t f P P P t t t
Richiami di cinematica
• Consideriamo un corpo puntiforme
• Velocità media: quantità vettoriale (direzione e modulo)
v=s/t
• Velocità instantanea
v=limt0(s/t)=ds/dt
Richiami di cinematica
• Dato il vettore velocità per un puntov(x,y,z) e definito l’intervallo di tempo dt
• Calcoliamo la nuova posizione s(x,y,z) del punto dovuta allo spostamento nel tempo dt
( ) ( )
( ) ( )
( ) ( )
t dt tx x x
t dt ty y y
t dt tz z z
s s dt v
s s dt v
s s dt v
Animazione su un percorso
• Consideriamo un punto P che si muove su di un percorso definito tramite la curva parametrica C(t)
• Consideriamo t come parametro temporale per il moto
• Il tipo di parametrizzazione della curva influenza il tipo di moto
• Per ottenere un moto uniforme dobbiamo considerare una parametrizzazione sulla lunghezza della curva: t [0,len(curva)]