keyframing and splines - seoul national...
TRANSCRIPT
Keyframing and Splines
Jehee LeeSeoul National University
What is Motion ?
• Motion is a time-varying transformation from body local system to world coordinate system (in a very narrow sense)
Worldcoordinates
What is Motion ?
• Motion is a time-varying transformation from body local system to world coordinate system
World coordinates Body local
coordinates
)(tT
What is Keyframing ?
World coordinates Body local
coordinates
)(tT
)( 11 tTT = )( 22 tTT =
)( 33 tTT =
Transfomation
• Rigid transformation– Rotate + Translate– 3x3 orthogonal matrix + 3-vector
• Affine transformation– Scale + Shear + Rigid Transf.– 3x3 matrix + 3-vector
• Homogeneous transformation– Projective + Affine Transf.– 4x4 homogeneous matrix
• General transformation– Free-form deformation
bRxx +®:T
bAxx +®:T
Hxx®:T
Particle Motion
• A curve in 3-dimensional space
World coordinates
( ))(),(),()( tztytxt =p
Keyframing Particle Motion
• Find a smooth function that passes through given keyframes
World coordinates
),( 00 pt
),( 11 pt
),( 22 pt
),( 33 pt
.0),,( nit ii ££p)(tp
Polynomial Curve
• Mathematical function vs. discrete samples– Compact– Resolution independence
• Why polynomials ?– Simple– Efficient– Easy to manipulate– Historical reasons
dcbap +++=
+++=
+++=
+++=
tttt
dtctbtatz
dtctbtatydtctbtatx
zzzz
yyyy
xxxx
23
23
23
23
)(or
)(
)(
)(
Degree and Order
• Polynomial– Order n+1 (= number of coefficients)– Degree n
011
1)( atatatatx nn
nn ++++= -
- !
Polynomial Interpolation
• Linear interpolation with a polynomial of degree one– Input: two nodes– Output: Linear polynomial
),( 00 xt
),( 11 xt
01)( atatx += ÷÷ø
öççè
æ=÷÷
ø
öççè
æ÷÷ø
öççè
æ
=+=+
1
0
1
0
1
0
1011
0001
11
xx
aa
tt
xataxata
Polynomial Interpolation
• Quadratic interpolation with a polynomial of degree two
),( 00 xt
),( 11 xt
012
2)( atatatx ++=÷÷÷
ø
ö
ççç
è
æ=
÷÷÷
ø
ö
ççç
è
æ
÷÷÷
ø
ö
ççç
è
æ
=++
=++
=++
2
1
0
2
1
0
222
211
200
2021222
1011212
0001202
111
xxx
aaa
tttttt
xatataxatataxatata
),( 22 xt
Polynomial Interpolation
• Polynomial interpolation of degree n
),( 00 xt
),( 11 xt
01)( atatatx nn +++= !
÷÷÷÷÷
ø
ö
ççççç
è
æ
=
÷÷÷÷÷
ø
ö
ççççç
è
æ
÷÷÷÷÷
ø
ö
ççççç
è
æ
-
-
-
nnnn
nn
nn
nn
x
xx
a
aa
tt
tttt
!!
"!!#!
""
1
0
1
0
1
11
1
01
0
1
11),( nn xt
Do we really need to solve the linear system ?
Lagrange Polynomial
• Weighted sum of data points and cardinal functions
• Cardinal polynomial functions
)())(()()())(()()(
110
110
nkkkkkk
nkkk tttttttt
tttttttttL----
----=
+-
+-
!!!!
nn xtLxtLxtLtx )()()()( 1100 +++= !
îíì
¹=
=ikik
tL ik if0 if1
)(
Limitation of Polynomial Interpolation
• Oscillations at the ends– Nobody uses higher-order polynomial interpolation now
• Demo– Lagrange.htm
Spline Interpolation
• Piecewise smooth curves– Low-degree (cubic for example) polynomials– Uniform vs. non-uniform knot sequences
0x
1x
nx2x
3x
Time0t 1t 2t 3t nt
Why cubic polynomials ?
• Cubic (degree of 3) polynomial is a lowest-degree polynomial representing a space curve
• Quadratic (degree of 2) is a planar curve– Eg). Font design
• Higher-degree polynomials can introduce unwanted wiggles
Interpolation and Approximation
Continuity Conditions• To ensure a smooth transition from one section of a
piecewise parametric spline to the next, we can impose various continuity conditions at the connection points
• Parametric continuity– Matching the parametric derivatives of adjoining curve sections
at their common boundary• Geometric continuity
– Geometric smoothness independent of parametrization– parametric continuity is sufficient, but not necessary, for
geometric smoothness
Parametric Continuity
• Zero-order parametric continuity– -continuity– Means simply that the curves meet
• First-order parametric continuity– -continuity– The first derivatives of two adjoining
curve functions are equal• Second-order parametric continuity
– -continuity– Both the first and the second
derivatives of two adjoining curve functions are equal
0C
1C
2C
Geometric Continuity
• Zero-order geometric continuity– Equivalent to -continuity
• First-order geometric continuity– -continuity– The tangent directions at the ends of two adjoining
curves are equal, but their magnitudes can be different
• Second-order geometric continuity– -continuity– Both the tangent directions and curvatures at the
ends of two adjoining curves are equal
0C
1G
2G
Basis Functions
• A linear space of cubic polynomials – Monomial basis
– The coefficients do not give tangible geometric meaning
012
23
3)( atatatatx +++=
),,,( 0123 tttt
ia
Bezier Curve
• Bernstein basis functions
• Cubic polynomial in Bernstein bases
iinni tt
in
tB --÷÷ø
öççè
æ= )1()(
33
22
12
03
333
322
311
300
)1(3)1(3)1(
)()()()()(
bbbbbbbbp
tttttttBtBtBtBt+-+-+-=
+++=
333
1232
231
330
)(
)1(3)(
)1(3)(
)1()(
ttBtttBtttB
ttB
=
-=
-=
-=
Bernstein Basis Functions
Bezier Control Points
• Control points (control polygon)
• Demo– Bezier.htm
3210 ,,, bbbb
De Casteljau Algorithm
• Subdivision of a Bezier Curve into two curve segments
Properties of Bezier Curves
• Invariance under affine transformation– Partition of unity of Bernstein basis functions
• The curve is contained in the convex hull of the control polygon
• Variation diminishing– the curve in 2D space does not oscillate about any
straight line more often than the control point polygon
10if1)(0 ££££ ttBni
Properties of Cubic Bezier Curves
• End point interpolation
• The tangent vectors to the curve at the end points are coincident with the first and last edges of the control point polygon
)(3)1(')(3)0('
23
01
bbpbbp
-=-=
0b
1b
2b
3b
3
0
)1()0(bpbp
==
Properties of Cubic Bezier Curves
Bezier Splines with Tangent Conditions
• Find a piecewise Bezier curve that passes through given keyframes and tangent vectors
• Adobe Illustrator provides a typical example of user interfaces for cubic Bezier splines
),( 00 pt
),( 11 pt
),( 22 pt
),( 33 pt
Catmull-Rom Splines
• Polynomial interpolation without tangent conditions– -continuity– Local controllability
• Demo– CatmullRom.html
),( 00 pt
),( 11 pt
),( 22 pt),( 33 pt
2)(' 11 -+ -= iiit
ppp
1C
Natural Cubic Splines
• Is it possible to achieve higher continuity ?– -continuity can be achieved from splines of
degree n
1-nC
),( 00 xt
),( 11 xt
),( nn xt),( 22 xt
),( 33 xt),( 11 -- nn xt
Natural Cubic Splines
• Motivated by loftman’s spline– Long narrow strip of wood or plastic– Shaped by lead weights (called ducks)
Natural Cubic Splines• We have 4n unknowns
– n Bezier curve segments (4 control points per each segment)• We have (4n-2) equations
– 2n equations for end point interpolation– (n-1) equations for tangential continuity– (n-1) equations for second derivative continuity
• Two more equations are required !
),( 00 xt
),( 11 xt
),( nn xt),( 22 xt
),( 33 xt),( 11 -- nn xt
Natural Cubic Splines
• Natural spline boundary condition
• Closed boundary condition
• High-continuity, but no local controllability
• Demo– natcubic.html– natcubicclosed.html
0)()( 0 =¢¢=¢¢ ntxtx
)()(and)()( 00 nn txtxtxtx ¢¢=¢¢¢=¢
B-splines
• Is it possible to achieve both -continuity and local controllability ?– B-splines can do !
• Uniform cubic B-spline basis functions
333
2332
2331
330
61)(
)1333(61)(
)463(61)(
)1(61)(
ttB
ttttB
tttB
ttB
=
+++-=
+-=
-=
2C
)()()()()( 333
322
311
300 tBtBtBtBt bbbbp +++=
Uniform B-spline basis functions
• Bell-shaped basis function for each control points
• Overlapping basis functions– Control points correspond to knot points
B-spline Properties
• Convex hull• Affine invariance• Variation diminishing• -continuity• Local controllability
• Demo– Bspline.html
2C
NURBS
• Non-uniform Rational B-splines– Non-uniform knot spacing– Rational polynomial
• A polynomial divided by a polynomial• Can represent conics (circles, ellipses, and hyperbolics)• Invariant under projective transformation
• Note– Uniform B-spline is a special case of non-uniform B-spline– Non-rational B-spline is a special case of rational B-spline
Cubic Spline Interpolation in a B-Spline Form
Cubic Spline Interpolation in a B-Spline Form
Conversion BetweenSpline Representations
• Sometimes it is desirable to be able to switch from one spline representation to another
• For example, both B-spline and Bezier curves represent polynomials, so either can be used to go from one to the other
• The conversion matrix is22
11)(GMTGMTtP××=××=
11122
2211
GMMGGMGM××=
×=×-
Summary
• Polynomial interpolation– Lagrange polynomial
• Spline interpolation– Piecewise polynomial– Knot sequence– Continuity across knots
• Natural spline ( -continuity)• Catmull-Rom spline ( -continuity)
– Basis function• Bezier• B-spline
2C1C