Computer Animation Algorithms and Techniques

Slides:



Advertisements
Similar presentations
Arc-length computation and arc-length parameterization
Advertisements

Curves Jim Van Verth Essential Math for Games Animation Problem: want to replay stored set of transformations  Generated by.
Computer Graphics (Spring 2008) COMS 4160, Lecture 6: Curves 1
Parametric Curves Ref: 1, 2.
© University of Wisconsin, CS559 Spring 2004
2002 by Jim X. Chen: Bezier Curve Bezier Curve.
Geometric Modeling Notes on Curve and Surface Continuity Parts of Mortenson, Farin, Angel, Hill and others.
Cubic Curves CSE167: Computer Graphics Instructor: Steve Rotenberg UCSD, Fall 2006.
Jehee Lee Seoul National University
1 Introduction Curve Modelling Jack van Wijk TU Eindhoven.
Dr. S.M. Malaek Assistant: M. Younesi
1 Curves and Surfaces. 2 Representation of Curves & Surfaces Polygon Meshes Parametric Cubic Curves Parametric Bi-Cubic Surfaces Quadric Surfaces Specialized.
Computer graphics & visualization Key frame Interpolation.
1Notes  Assignment 0 is being marked  Textbook reference for arc-length parameterization:  Section 3.2.
Informationsteknologi Monday, December 10, 2007Computer Graphics - Class 161 Today’s class Curve fitting Evaluators Surfaces.
Chap 3 Interpolating Values
CSCE 441 Computer Graphics: Keyframe Animation/Smooth Curves Jinxiang Chai.
Organic Modeling Using Generalised Cylinders Nina Halim Supervisor: Dr. Jon McCormack.
Advanced Computer Graphics (Spring 2005) COMS 4162, Lecture 12: Spline Curves (review) Ravi Ramamoorthi Most material.
Modelling: Curves Week 11, Wed Mar 23
Assignment 1 Motion Interpolation Date: 2006/9/28 TA: 彭任右 EC 229B Ext:
University of British Columbia CPSC 414 Computer Graphics © Tamara Munzner 1 Curves Week 13, Mon 24 Nov 2003.
Rotation representation and Interpolation
Motion Blending (Multidimensional Interpolation) Jehee Lee.
11/19/02 (c) 2002, University of Wisconsin, CS 559 Last Time Many, many modeling techniques –Polygon meshes –Parametric instancing –Hierarchical modeling.
A D V A N C E D C O M P U T E R G R A P H I C S CMSC 635 January 15, 2013 Spline curves 1/23 Curves and Surfaces.
CS 376 Introduction to Computer Graphics 04 / 23 / 2007 Instructor: Michael Eckmann.
This Week Week Topic Week 1 Week 2 Week 3 Week 4 Week 5
Computer Animation Rick Parent Computer Animation Algorithms and Techniques Interpolating Values.
University of Texas at Austin CS384G - Computer Graphics Fall 2008 Don Fussell Parametric surfaces.
Curves. First of all… You may ask yourselves “What did those papers have to do with computer graphics?” –Valid question Answer: I thought they were cool,
110/27/ :47 Graphics II Animation Introduction and Motion Control Session 6.
June D Object Representation Shmuel Wimer Bar Ilan Univ., School of Engineering.
University of Texas at Austin CS384G - Computer Graphics Fall 2008 Don Fussell Parametric Curves.
CS559: Computer Graphics Lecture 19: Curves Li Zhang Spring 2008.
CS 551/651 Advanced Graphics Arc Length. Assignment 1 Due Week from Thursday Building a Cubic Bézier curve OpenGL/Glut Insert up to 100 points Render.
CS 376 Introduction to Computer Graphics 04 / 25 / 2007 Instructor: Michael Eckmann.
CSCE 441 Computer Graphics: Keyframe Animation/Smooth Curves Jinxiang Chai.
Review CSE167: Computer Graphics Instructor: Steve Rotenberg UCSD, Fall 2005.
Greg Humphreys CS445: Intro Graphics University of Virginia, Fall 2003 Parametric Curves & Surfaces Greg Humphreys University of Virginia CS 445, Spring.
CS 551/651 Advanced Graphics Technical Background.
Rick Parent - CIS681 Interpolation and Basic Techniques Representing and interpolating orientations Interpolation Speed control along curve Path following.
Animating with Quaternions
Parametric Curves CS 318 Interactive Computer Graphics John C. Hart.
CSCE 441: Keyframe Animation/Smooth Curves (Cont.) Jinxiang Chai.
CSCE 441: Keyframe Animation/Smooth Curves (Cont.) Jinxiang Chai.
(c) 2002 University of Wisconsin
Designing Parametric Cubic Curves 1. 2 Objectives Introduce types of curves ­Interpolating ­Hermite ­Bezier ­B-spline Analyze their performance.
1 Graphics CSCI 343, Fall 2015 Lecture 34 Curves and Surfaces III.
CSCI480/582 Lecture 10 Chap.2.3 Cubic Splines – B-Splines and NURBS Feb, 13, 2009.
Keyframe Interpolation and Speed Control Jehee Lee Seoul National University.
Splines Sang Il Park Sejong University. Particle Motion A curve in 3-dimensional space World coordinates.
CS559 – Curves Lecture These are course notes (not used as slides) Written by Mike Gleicher, Oct Updates Oct 2006, 2007 Updates Oct 2008 © 2005 Michael.
Ship Computer Aided Design
Foundations of Computer Graphics (Spring 2012) CS 184, Lecture 12: Curves 1
Rendering Bezier Curves (1) Evaluate the curve at a fixed set of parameter values and join the points with straight lines Advantage: Very simple Disadvantages:
Rick Parent - CIS681 Interpolation of a time-space curve Interpolation (of a curve in space) Speed control along curve Reparameterizing according to arc.
Curves University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2013 Tamara Munzner.
Object Modeling: Curves and Surfaces CEng 477 Introduction to Computer Graphics.
Introduction to Parametric Curve and Surface Modeling.
CSCI480/582 Lecture 9 Chap.2.2 Cubic Splines – Hermit and Bezier Feb, 11, 2009.
CSE 167 [Win 17], Lecture 9: Curves 1 Ravi Ramamoorthi
© University of Wisconsin, CS559 Fall 2004
Rotation representation and Interpolation
© University of Wisconsin, CS559 Spring 2004
Homework Aid: Cycloid Motion
Interpolation and Basic Techniques
CSCE 441: Keyframe Animation/Smooth Curves (Cont.)
Introduction to Parametric Curve and Surface Modeling
Presentation transcript:

Computer Animation Algorithms and Techniques Interpolating Values

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

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

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)))

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

Interpolation v. Approximation

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

Continuity

Local v. Global Control

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

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

Lagrange Polynomial

Lagrange Polynomial

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

Hermite

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

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

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

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

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

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

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

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

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

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

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

Time Distance Function s = S(t) t

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

Ease-in: Sinusoidal

Ease-in: Piecewise Sinusoidal

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

Ease-in: Single Cubic

Ease-in: Constant Acceleration

Ease-in: Constant Acceleration

Ease-in: Constant Acceleration

Ease-in: Constant Acceleration

Constant Acceleration

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)))

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

Curve fitting to distance-time pairs

Working with time-distance curves

Interpolating distance-time pairs

Frenet Frame – control orientation

Frenet Frame tangent & curvature vector

Frenet Frame tangent & curvature vector

Frenet Frame tangent & curvature vector

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)

Frenet Frame - undefined

Frenet Frame - discontinuity

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

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

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

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?

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

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

Interpolating quaternions in great arc => equal spacing

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

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

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

Bezier interpolation

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

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

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

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

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

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

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)

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

Smoothing data

Smoothing data

Smoothing data

Smoothing data

Smoothing data

Smoothing data

Smoothing data

Smoothing data

Smoothing data

Smoothing data

Smoothing data

Smoothing data

Path finding

Path finding - downhill