Presentation is loading. Please wait.

Presentation is loading. Please wait.

Computer Animation Algorithms and Techniques

Similar presentations


Presentation on theme: "Computer Animation Algorithms and Techniques"— Presentation transcript:

1 Computer Animation Algorithms and Techniques
Interpolating Values

2 Animation Animator specified interpolation key frame
Algorithmically controlled Physics-based Behavioral Data-driven motion capture

3 Motivation Common problem: given a set of points
Smoothly (in time and space) move an object through the set of points Example additional temporal constraints: From zero velocity at first point, smoothly accelerate until time t1, hold a constant velocity until time t2, then smoothly decelerate to a stop at the last point at time t3

4 Motivation – solution steps
1. Construct a space curve that interpolates the given points with piecewise first order continuity p=P(u) 2. Construct an arc-length-parametric-value function for the curve u=U(s) s=S(t) 3. Construct time-arc-length function according to given constraints p=P(U(S(t)))

5 Interpolating function
Interpolation v. approximation Complexity: cubic Continuity: first degree (tangential) Local v. global control: local Information requirements: tangents needed?

6 Interpolation v. Approximation

7 reduced computational cost Can match arbitrary tangents at end points
Complexity Low complexity reduced computational cost Point of Inflection Can match arbitrary tangents at end points CUBIC polynomial

8 Continuity

9 Local v. Global Control

10 Information requirements
just the points tangents interior control points just beginning and ending tangents

11 Curve Formulations Lagrange Polynomial Piecewise cubic polynomials
Hermite Catmull-Rom Blended Parabolas Bezier B-spline Tension-Continuity-Bias 4-Point Form

12 Lagrange Polynomial

13 Lagrange Polynomial

14 Polynomial Curve Formulations
Need to match real-world data v. design from scratch Information requirements: just points? tangents? Qualities of final curve? Intuitive enough? Other shape controls? Blending Functions Algebraic coefficient matrix Geometric information Coefficient matrix

15 Hermite

16 Cubic Bezier Interior control points play the same role as the tangents of the Hermite formulation

17 Blended Parabolas/Catmull-Rom*
* End conditions are handled differently

18 Controlling Motion along p=P(u)
Step 2. Reparameterization by arc length u = U(s) where s is distance along the curve Step 3. Speed control for example, ease-in / ease-out s = ease(t) where t is time

19 Reparameterizing by Arc Length
Analytic Forward differencing Supersampling Adaptive approach Numerically Adaptive Gaussian

20 Reparameterizing by Arc Length - analytic
Can’t always be solved analytically for our curves

21 Reparameterizing by Arc Length - supersample
Calculate a bunch of points at small increments in u Compute summed linear distances as approximation to arc length Build table of (parametric value, arc length) pairs Notes Often useful to normalize total distance to 1.0 Often useful to normalize parametric value for multi-segment curve to 1.0

22 Build table of approx. lengths
index u Arc Length 0.00 0.000 1 0.05 0.080 2 0.10 0.150 3 0.15 0.230 ... 20 1.00 1.000 Build table of approx. lengths

23 Adaptive Approach How fine to sample?
Compare successive approximations and see if they agree within some tolerance Test can fail – subdivide to predefined level, then start testing

24 Reparameterizing by Arc Length - quadrature
Lookup tables of weights and parametric values Can also take adaptive approach here

25 Reparameterizing by Arc Length
Analytic Forward differencing Supersampling Adaptive approach Numerically Adaptive Gaussian Sufficient for many problems

26 Speed Control distance Time-distance function Ease-in Cubic polynomial
Sinusoidal segment Segmented sinusoidal Constant acceleration General distance-time functions time

27 Time Distance Function
s = S(t) t

28 Ease-in/Ease-out Function
1.0 s = S(t) 0.0 1.0 t 0.0 Normalize distance and time to 1.0 to facilitate reuse

29 Ease-in: Sinusoidal

30 Ease-in: Piecewise Sinusoidal

31 Ease-in: Piecewise Sinusoidal
where Provides linear (constant velocity) middle segment

32 Ease-in: Single Cubic

33 Ease-in: Constant Acceleration

34 Ease-in: Constant Acceleration

35 Ease-in: Constant Acceleration

36 Ease-in: Constant Acceleration

37 Constant Acceleration

38 Motivation – solution steps
1. Construct a space curve that interpolates the given points with piecewise first order continuity p=P(u) 2. Construct an arc-length-parametric-value function for the curve u=U(s) s=S(t) 3. Construct time-arc-length function according to given constraints p=P(U(S(t)))

39 Arbitrary Speed Control
Animators can work in: Distance-time space curves Velocity-time space curves Acceleration-time space curves Set time-distance constraints etc.

40 Curve fitting to distance-time pairs

41 Working with time-distance curves

42 Interpolating distance-time pairs

43 Frenet Frame – control orientation

44 Frenet Frame tangent & curvature vector

45 Frenet Frame tangent & curvature vector

46 Frenet Frame tangent & curvature vector

47 local coordinate system
Frenet Frame local coordinate system Directly control orientation of object/camera v is perpendicular to w if curve is parameterized by arclength; otherwise probably not perpendicular For general curve must v = wxu Use for direction and bank into turn, especially for ground-planar curves (e.g. roads)

48 Frenet Frame - undefined

49 Frenet Frame - discontinuity

50 Other ways to control orientation
Use auxiliary curve to define direction or up vector Use point P(s+ds) for direction

51 Direction & Up vector To keep ‘head up’, use y-axis to compute over and up vectors perpendicular to direction vector v = u x w w If up vector supplied, use that instead of y-axis u=w x y-axis Direction vector

52 Orientation interpolation
Preliminary note: Remember that Affects of scale are divided out by the inverse appearing in quaternion rotation When interpolating quaternions, use UNIT quaternions – otherwise magnitudes can interfere with spacing of results of interpolation

53 Orientation interpolation
Quaternions can be interpolated to produce in-between orientations: 2 problems analogous to issues when interpolating positions: How to take equi-distant steps along orientation path? How to pass through orientations smoothly (1st order continuous) 3. And another particular to quaternions: with dual unit quaternion representations, which to use?

54 Dual representation Dual unit quaternion representations
For Interpolation between q1 and q2, compute cosine between q1 and q2 and between q1 and –q2; choose smallest angle

55 Interpolating quaternions
Unit quaternions form set of points on 4D sphere Linearly interpolating unit quaternions: not equally spaced

56 Interpolating quaternions in great arc => equal spacing

57 Interpolating quaternions with equal spacing
where ‘slerp’, sphereical linear interpolation is a function of the beginning quaternion orientation, q1 the ending quaternion orientation, q2 the interpolant, u

58 Smooth Orientation interpolation
Use quaternions Interpolate along great arc (in 4-space) using cubic Bezier on sphere 1. Select representation to use from duals 2. Construct interior control points for cubic Bezier 3. use DeCastelajue construction of cubic Bezier

59 Smooth quaternion interpolation
Similar to first order continuity desires with positional interpolation How to smoothly interpolate through orientations q1, q2, q3,…qn Bezier interpolation – geometric construction

60 Bezier interpolation

61 Bezier interpolation Construct interior control points tn bn pn pn
an pn-1 an pn+2 pn+2 pn+1 pn+1 pn pn-1 an pn+2 an+1 a0 pn+1 bn+1 p1 p2 tn+1 p0

62 Quaternion operators q2 qb bisect(q1, q2)
Similar to forming a vector between 2 points, form the rotation between 2 orientations q1 q2 double(q1, q2) Given 2 orientations, form result of applying rotation between the two to 2nd orientation q1 qd

63 Quaternion operators:
Given p and q, form r ‘Double’ where q’ is the mid-orientation between p and the yet-to-be-determined r p q r q’ If p and q are unit quaternions, Then q’ = cos(q)q and cos(q)= Given p and r, form q Bisect 2 orientations: if p and r are unit length

64 Bezier interpolation Need quaternion-friendly operators to form interior control points

65 Bezier interpolation Construct interior control points Bezier segment:
tn an pn pn-1 pn+2 bn pn+1 pn pn-1 an pn+2 pn+1 pn pn-1 an pn+2 Bezier segment: qn, an, bn+1, qn+1 an+1 pn+1 bn+1 tn+1

66 Bezier construction using quaternion operators
Need quaternion-friendly operations to interpolate cubic Bezier curve using ‘quaternion’ points de Casteljau geometric construction algorithm

67 Bezier construction using quaternion operators
For p(1/3) t1=slerp(qn, an,1/3) t2=slerp(an, bn+1,1/3) t3=slerp(bn+1, qn+1,1/3) t12=slerp(t1, t2,1/3) t23=slerp(t12, t23,1/3) q=slerp(t12, t23,1/3)

68 Working with paths Smoothing a path Determining a path along a surface
Finding downhill direction

69 Smoothing data

70 Smoothing data

71 Smoothing data

72 Smoothing data

73 Smoothing data

74 Smoothing data

75 Smoothing data

76 Smoothing data

77 Smoothing data

78 Smoothing data

79 Smoothing data

80 Smoothing data

81 Path finding

82 Path finding - downhill


Download ppt "Computer Animation Algorithms and Techniques"

Similar presentations


Ads by Google