computer graphics & visualization key frame interpolation

36
computer graphics & visualization Simulation and Animation Key frame Interpolation

Upload: kerrie-caldwell

Post on 18-Dec-2015

256 views

Category:

Documents


0 download

TRANSCRIPT

computer graphics & visualization

Simulation and Animation

Key frame Interpolation

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

Keyframe AnimationDraw one keyframe after another

Results in “rough” animation instead of a smooth transition from frame to frame

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

Keyframe Interpolation

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

Keyframe Interpolation

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

Keyframe Interpolation

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

Simple TranslationsLinear Interpolation is fine here

But what about rotations?

1000

000

000

000

)(z

y

x

t

t

t

tR

1000

)(z

y

x

tihg

tfed

tcba

tR

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

Linear Interpolation of Rotations

K = (1-a) A + a B (linear interpolation: lerp)

Introduces non linear behavior on the arc

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

SLERPApproach by means of slerp = spherical linear interpolation

with

it follows

AP

BBAP

cos

cos

1||

PA

BA

P

BAP

sin

sin

sin

)sin(

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

Quaternion Power Operator

[ cos(q/2), sin(q /2) * A] a

[cos(aq/2), sin(aq /2) * A] q a rotates to q orientation as a goes

from 0 to 1

=

Quaternions: q = (qbqa-1) a qa (slerp)

q = slerp(qa,qb, a)

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

Curves• So far: smooth linear interpolation along a line

(or along an arc on the circle)

• Now extend the idea so that interpolation follows a given path, a curve

• In the following: description of curves

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

Consider the following:Data is sampled at discrete data pointsWant to know data values at an arbitrary position within the domain

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

The simple way• From n+1 known data samples construct a n-

dimensional polynomial• n+1 Samples → n+1 knows• n-dimensional polynomial has n+1

unknowns

011

1)( cxcxcxcxp nnn

nn

leads to system of n+1 linear equations

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

The simple way (cont.)• system of equations can be rewritten as matrix

1

2

1

1

2

1

11

11

1

21

22

11

11

1

1

1

1

n

n

n

n

nn

nnn

nn

nnn

nn

nn

y

y

y

y

c

c

c

c

xxx

xxx

xxx

xxx

Vandermonde Matrix

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

Polynomial for approximation

21

1)(

xxf

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

How to handle multiple x values?

• do not use a single approximation function but use n (=dimension of the domain) functions and a new parameter t from 0 to 1

• x(t)=x, y(t)=y, z(t)=z …

x

yy(t)

x(t)

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

multiple x-values (cont.)leads to multiple polynomials

zzzz

yyyy

xxxx

dtctbtatz

dtctbtaty

dtctbtatx

23

23

23

)(

)(

)(

can be rewritten in matrix form

CTtztytxtQ ,,

zyx

zyx

zyx

zyx

ddd

ccc

bbb

aaa

C

1,,, 23 tttT

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

Matrix notation

C can be split up into M (basis matrix)G (geometry matrix)

GM

ddd

ccc

bbb

aaa

C

zyx

zyx

zyx

zyx

M is fixed for a given approachG depends on the specific curve to fit

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

Building M• derive a Matrix M for the Hermite approach • Hermite uses polynomials of degree 3 to a fit 2

points• it is an interpolation

→ 2 conditions• derivatives at the endpoints are given

→ 2 conditions

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

Hermite interpolation

2

1

2

1

R

R

P

P

GxH

x

x

x

x

Hhx

Hhx

Hhx

Hhx

GMRx

GMRx

GMPx

GMPx

0,1,2,3)1(

0,1,0,0)0(

1,1,1,1)1(

1,0,0,0)0(

2

1

2

1

with

xx HHH GMG

R

R

P

P

0123

0100

1111

1000

2

1

2

1

GMttttztytxtQ 1,,,,, 23

xxx

xxxx

ctbtatx

dtctbtatx

23)(

)(2

23

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

Hermite interpolation (cont.)

223

123

223

123 1232132)( RttRtttPttPtttx

xx HHH GMG

R

R

P

P

0123

0100

1111

1000

2

1

2

1

0001

0100

1233

1122

HM

2

1

2

1

23

0001

0100

1233

1122

1,,,)(),(),()(

R

R

P

P

ttttztytxtQ

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

Hermite interpolation• Cubic Hermite-Polynoms:

30H

33H

31H

32H

233

232

231

230

)23()(H

)1()(H

)1()(H

)21()1()(H

ttt

ttt

ttt

ttt

Charles Hermite (1822-1901)

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

Hermite interpolation• Example:

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

Hermite interpolation• Properties:– Neither affine invariant with respect to control

points nor with respect to vectors – No local control– Difficult to find tangent vectors– Curve segments can be attached continuously – Interpolation between points with tangents, e.g. for

Keyframe-Animation with given position and velocity

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

Monom interpolation• Approach: Monom-Basis: {ti | i=0…n}

• From p(ti) = ai the system of equations is derived:

Vandermond Matrix

n

i

ii tt

0

)( cpBasis

Control points

nnnnn

n

n ttt

ttt

c

c

c

a

a

a

1

0

2

0200

1

0

1

1 3 components per entry

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

Bézier-Curves• Idea: tangent vectors defined by first and last two points:

– b0 and bn will be interpolated

– bi will be approximated– Relation to Hermite-Interpolation:

b0

b2b1

b3(degree)3with)()1(

)()0(

)1(

)0(

23

01

3

0

nn

n

bbp

bbp

bp

bp

cubic Bézier-Curve

Example: cubic Bezier-Curve

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

Bézier-Curves• … and Hermite-Interpolation

• And for the curve:

BHBH GM

b

b

b

b

p

p

p

p

G

3

2

1

0

1000

3300

0033

0001

)1(

)1(

)0(

)0(

Geometry vectorfor Bézier

Matrix forBézier to Hermite

BMBTM

BHBMHTM

HMHTMt

GMB

GMMB

GMBp

)(

0001

0033

0363

1331

MBMwith

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

Bézier-Curves • The cubic Bézier-Curve:

• Bernstein-Polynoms of degree n:

with domain [0,1]

3with)(B

)1(3)1(3)1()(

0

33

22

12

03

nt

ttttttt

i

n

i

ni b

bbbbp

Bézier-Control-PointsBernstein-Polynoms

inini tt

i

nt

)1()(B

)!(!

!

ini

n

i

n

with

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

Bézier-Curves• Cubic Bernstein-Polynoms:

30B 3

3B

31B

32B

333

232

231

330

)(B

)1(3)(B

)1(3)(B

)1()(B

tt

ttt

ttt

tt

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

Bézier-Curves• Of degree n = 1: linear interpolation

• Of degree n = 2:

10101

110

10 )1()(B)(B)( bbbbbp ttttt

222

21

220 )(B,)1(2)(B,)1()(B ttttttt

20

11

10

2110

2110

22

102

)1(

))1(())1)((1(

)1()1()1)(1(

)1(2)1()(

bbb

bbbb

bbbb

bbbp

tt

tttttt

tttttttt

ttttt

iterated linear interpolation

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

Bézier-Curves• Iterated linear interpolation for degree 2:

20

11

10)1()( bbbp ttt

0b

1b

2b

10b

11b

20b

Example fort = 0,4

http://www.vis.uni-stuttgart.de/~kraus/LiveGraphics3D/

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

Bezier Interpolation of Quaternions

De Casteljau

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

p1 slerp(qn ,an, 13)p2 slerp(an ,bn1, 13)p3 slerp(bn1,qn1, 13)p12 slerp(p1, p2, 13)p23 slerp(p2, p3, 13)pslerp(p12, p23, 13)

Spherical Linear Interpolation

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

For u = 1/4

tempslerp(qn ,an, 12)qn anp1 slerp(qn ,temp, 12)qn temptempslerp(an ,bn1, 12)an bn1p2 slerp(qn , temp, 12)qn temptempslerp(bn1,qn1, 12)bn1 qn1p3 slerp(bn1,temp, 12)bn1 temptempslerp(p1, p2, 12)p1 p2p12 slerp(p1, temp, 12)p1 temptempslerp(p2, p3, 12)p2 p3p23 slerp(p2,temp, 12)p2 temptempslerp(p12, p23, 12)p12 p23p23 slerp(p12,temp, 12)p12 temp

Repeated mid-point interpolation

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

Spline-Curves• Problem so far: polynom degree depends on number

of control points• Idea: – Multiple segments with low degree instead of one segment

of high degree– Segments can be of arbitrary type:

• Hermite-Curves• Quadrics• Bézier-Curves

– Important is smooth transition between segments

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

Spline-Curves• Spline: – A thin flexible rod used for the construction of ships– Deutsch: Straklatte, Strakfunktionen– A spline of n-th degree consists of polynomial

segments of max degree n – A cubic Spline describes the shape of a thin rod that

is fixed at start and end point

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

Bézier-Splines• Spline-Segments i:

• Spline s(u) ist sum of segments

n

jji

nji ut

0,)(B)( bs

bi,3 = bi+1,0

ui

ui+1bi,0

bi,1bi,2

bi+1,1