Download presentation

Presentation is loading. Please wait.

1
CSCE 441 Computer Graphics: Keyframe Animation/Smooth Curves Jinxiang Chai

2
Outline Keyframe interpolation Curve representation and interpolation - natural cubic curves - Hermite curves - Bezier curves Required readings: HB 8-8,8-9, 8-10

3
Computer Animation Animation - making objects moving Compute animation - the production of consecutive images, which, when displayed, convey a feeling of motion.

4
Animation Topics Rigid body simulation - bouncing ball - millions of chairs falling down

5
Animation Topics Rigid body simulation - bouncing ball - millions of chairs falling down Natural phenomenon - water, fire, smoke, mud, etc.

6
Animation Topics Rigid body simulation - bouncing ball - millions of chairs falling down Natural phenomenon - water, fire, smoke, mud, etc. Character animation - articulated motion, e.g. full-body animation - deformation, e.g. face

7
Animation Topics Rigid body simulation - bouncing ball - millions of chairs falling down Natural phenomenon - water, fire, smoke, mud, etc. Character animation - articulated motion, e.g. full-body animation - deformation, e.g. face Cartoon animation

8
Animation Criterion Physically correct - rigid body-simulation - natural phenomenon Natural - character animation Expressive - cartoon animation

9
Keyframe Animation

10
Keyframe Interpolation What’s the inbetween motion? t=0 t=50ms

11
Outline Process of keyframing Key frame interpolation Hermite and bezier curve Splines Speed control

12
2D Animation Highly skilled animators draw the key frames Less skilled (lower paid) animators draw the in- between frames Time consuming process Difficult to create physically realistic animation

13
3D Animation Animators specify important key frames in 3D Computers generates the in-between frames Some dynamic motion can be done by computers (hair, clothes, etc) Still time consuming; Pixar spent four years to produce Toy Story

14
The Process of Keyframing Specify the keyframes Specify the type of interpolation - linear, cubic, parametric curves Specify the speed profile of the interpolation - constant velocity, ease-in-ease-out, etc Computer generates the in-between frames

15
A Keyframe In 2D animation, a keyframe is usually a single image In 3D animation, each keyframe is defined by a set of parameters

16
Keyframe Parameters What are the parameters? –position and orientation –body deformation –facial features –hair and clothing –lights and cameras

17
Outline Process of keyframing Key frame interpolation Hermite and bezier curve Splines Speed control

18
Inbetween Frames Linear interpolation Cubic curve interpolation

19
Keyframe Interpolation t=0 t=50ms

20
Linear Interpolation Linearly interpolate the parameters between keyframes

21
Cubic Curve Interpolation We can use three cubic functions to represent a 3D curve Each function is defined with the range 0 <= t <=1

22
Compact Representation

24
Smooth Curves Controlling the shape of the curve

25
Smooth Curves Controlling the shape of the curve

26
Smooth Curves Controlling the shape of the curve

27
Smooth Curves Controlling the shape of the curve

28
Smooth Curves Controlling the shape of the curve

29
Smooth Curves Controlling the shape of the curve

30
Constraints on the cubics How many constraints do we need to determine a cubic curve?

31
Constraints on the Cubic Functions How many constraints do we need to determine a cubic curve?

32
Constraints on the Cubic Functions How many constraints do we need to determine a cubic curve?

33
Constraints on the Cubic Functions How many constraints do we need to determine a cubic curve?

34
Constraints on the Cubic Functions How many constraints do we need to determine a cubic curve? 4

35
Natural Cubic Curves Q(t 1 )Q(t 2 )Q(t 3 ) Q(t 4 )

36
Interpolation Find a polynomial that passes through specified values

37
Interpolation Find a polynomial that passes through specified values

38
Interpolation Find a polynomial that passes through specified values

39
Interpolation Find a polynomial that passes through specified values

40
Interpolation Find a polynomial that passes through specified values

41
2D Trajectory Interpolation Perform interpolation for each component separately Combine result to obtain parametric curve

42
2D Trajectory Interpolation Perform interpolation for each component separately Combine result to obtain parametric curve

43
2D Trajectory Interpolation Perform interpolation for each component separately Combine result to obtain parametric curve

44
Constraints on the Cubic Curves How many constraints do we need to determine a cubic curve? 4 - does not provide local control of the curve

45
Constraints on the Cubic Curves How many constraints do we need to determine a cubic curve? 4 - does not provide local control of the curve Redefine C as a product of the basis matrix M and the control vector G: C= MG

46
Constraints on the cubic curves How many constraints do we need to determine a cubic curve? 4 - does not provide local control of the curve Redefine C as a product of the basis matrix M and the control vector G: C= MG MG

47
Constraints on the Cubic Curves How many constraints do we need to determine a cubic curve? 4 - does not provide local control of the curve Redefine C as a product of the basis matrix M and the control vector G: C= MG M G

48
Constraints on the Cubic Curves How many constraints do we need to determine a cubic curve? 4 - does not provide local control of the curve Redefine C as a product of the basis matrix M and the control vector G: C= MG M? G?

49
Outline Process of keyframing Key frame interpolation Hermite and bezier curve Splines Speed control

50
Hermite Curve A Hermite curve is determined by - endpoints P 1 and P 4 - tangent vectors R 1 and R 4 at the endpoints P1P1 R1R1 P4P4 R4R4

51
Hermite Curve A Hermite curve is determined by - endpoints P 1 and P 4 - tangent vectors R 1 and R 4 at the endpoints Use these elements to control the curve, i.e. construct control vector P1P1 R1R1 P4P4 R4R4 MhMh GhGh

52
Hermite Basis Matrix Given desired constraints: - endpoints meet P 1 and P 4 Q(0) = [0 0 0 1 ] · M h · G h = P 1 Q(1) = [1 1 1 1 ] · M h · G h = P 4 - tangent vectors meet R 1 and R 4

53
Tangent Vectors

55
Hermite Basis Matrix Given desired constraints: - endpoints meet P 1 and P 4 Q(0) = [0 0 0 1 ] · M h · G h = P 1 Q(1) = [1 1 1 1 ] · M h · G h = P 4 - tangent vectors meet R 1 and R 4 Q’(0) =[0 0 1 0] · M h · G h =R 1 Q’(1) =[3 2 1 0] · M h · G h =R 4

56
Hermite Basis Matrix Given desired constraints: - endpoints meet P 1 and P 4 Q(0) = [0 0 0 1 ] · M h · G h = P 1 Q(1) = [1 1 1 1 ] · M h · G h = P 4 - tangent vectors meet R 1 and R 4 Q’(0) =[0 0 1 0] · M h · G h =R 1 Q’(1) =[3 2 1 0] · M h · G h =R 4 So how to compute the basis matrix M h ?

57
Hermite Basis Matrix We can solve for basis matrix M h MhMh

58
Hermite Basis Matrix We can solve for basis matrix M h MhMh

59
Hermite Basis Matrix P1P1 R1R1 P4P4 R4R4

60
Hermite Basis Function Let’s define B as a product of T and M B h (t) indicates the weight of each element in G h

61
Bezier Curve Indirectly specify tangent vectors by specifying two intermediate points P1P1 R1R1 P3P3 R2R2 P2P2 P4P4

62
Bezier Curve Indirectly specify tangent vectors by specifying two intermediate points P1P1 R1R1 P3P3 R4R4 P2P2 P4P4

63
Bezier Curve Indirectly specify tangent vectors by specifying two intermediate points P1P1 R1R1 P3P3 R4R4 P2P2 P4P4 How to compute the basis matrix M b ?

64
Bezier Basis Matrix Establish the relation between Hermite and Bezier control vectors

65
Bezier Basis Matrix Establish the relation between Hermite and Bezier control vectors

66
Bezier Basis Matrix Establish the relation between Hermite and Bezier control vectors M hb GbGb

67
Bezier Basis Matrix For Hermite curves, we have For Bezier curves, we have

68
Bezier Basis Matrix For Hermite curves, we have For Bezier curves, we have

69
Bezier Basis Matrix P1P1 P3P3 P2P2 P4P4

70
Hermite basis function Let’s define B as a product of T and M B h (t) indicates the weight of each element in G h

71
Hermite basis function Let’s define B as a product of T and M B h (t) indicates the weight of each element in G h What’s function of this red curve?

72
Hermite basis function Let’s define B as a product of T and M B h (t) indicates the weight of each element in G h What’s function of this red curve? 2t 3 -3t 2 +1

73
Bezier basis functions Bezier blending functions are also called Bernstein polynomials

74
Bezier basis functions Bezier blending functions are also called Bernstein polynomials What’s function of this red curve?

75
Bezier basis functions Bezier blending functions are also called Bernstein polynomials What’s function of this red curve? -t 3 +3t 2 -3t+1

76
Bezier basis functions Bezier blending functions are also called Bernstein polynomials What’s function of this red curve? -t 3 +3t 2 -3t+1

77
How to interpolate a 3D curve x y z o

78
x y z o Bezier curve

79
Try this online at - Move the interpolation point, see how the others (and the point on curve) move - Control points (can even make loops) Bezier java applet http://www.cse.unsw.edu.au/~lambert/splines/

80
Cubic curves: Hermite curves: Bezier curves: Different basis functions

81
Complex curves Suppose we want to draw a more complex curve

82
Complex curves Suppose we want to draw a more complex curve How can we represent this curve?

83
Complex curves Suppose we want to draw a more complex curve Why not use a high-order Bézier? - Wiggly curves - No local control

84
Complex curves Suppose we want to draw a more complex curve Why not use a high-order Bézier? - Wiggly curves - No local control Instead, we’ll splice together a curve from individual segments that are cubic Béziers

85
Complex curves Suppose we want to draw a more complex curve Why not use a high-order Bézier? - Wiggly curves - No local control Instead, we’ll splice together a curve from individual segments that are cubic Béziers

86
Complex curves Suppose we want to draw a more complex curve Why not use a high-order Bézier? - Wiggly curves - No local control Instead, we’ll splice together a curve from individual segments that are cubic Béziers

87
Complex curves Suppose we want to draw a more complex curve Why not use a high-order Bézier? - Wiggly curves - No local control Instead, we’ll splice together a curve from individual segments that are cubic Béziers Why cubic? - Lowest dimension with control for the second derivative - Lowest dimension for non-planar polynomial curves

88
Next lecture Spline curve and more key frame interpolation

Similar presentations

© 2021 SlidePlayer.com Inc.

All rights reserved.

To make this website work, we log user data and share it with processors. To use this website, you must agree to our Privacy Policy, including cookie policy.

Ads by Google