1
|
- Michael Gleicher
- University of Wisconsin- Madison
- www.cs.wisc.edu/~gleicher
- www.cs.wisc.edu/graphics
|
2
|
- Movies
- Television
- Videogames
- Training
- Simulation
- Analysis
|
3
|
- People are good at watching people!
- Human appearance is very complex
- People do many things
- Subtlety matters
- Hard to describe movement
- “Normal” movements aren’t interesting
|
4
|
- “Gross” Body movement
- NOT:
- Appearance Models
- Facial animation
- Cloth, clothing, secondary movement
- Hands
|
5
|
- 1. Representation of humans
- 2. Motion capture processing and editing
- 3. Concatenative synthesis
- 4. Parametric synthesis
- 5. Skinning
|
6
|
- Luxo Jr. Pixar, 1986
- Brilliance (Sexy Robot)
- Robert Abel and Associates, 1985
- Early motion capture
- Early computer graphics look (chrome)
- Final Fantasy
- Square Studios, 2001
- Realistic, animated, human characters
- Hollowman
- Sony Imageworks (effects), 2000
- Complex human models, terrible dialog
|
7
|
|
8
|
|
9
|
|
10
|
|
11
|
- Motion is rich, expressive, complex
- Hard to describe mathematically
- Amount of detail in characters varies
- Different representations needed
|
12
|
- How do we describe movement mathematically?
- So we can use it on a computer
- How do we describe the thing that is moving?
|
13
|
- Way to interpret a configuration
- A vector of parameters
- Some interpretation of these parameters such that a value can be drawn
- Representation
|
14
|
- A motion maps times to configurations
- Vector-valued, time-varying signal
- Representation comes from creation
- All we have to do is define the functions!
|
15
|
- We are good at looking at motion!
- Motion is very expressive
- Mood, activity, personality, …
- But those attributes are subtle
- What makes a motion sad? Realistic?
- We lack vocabulary
- Talk about motion with metaphor
|
16
|
- Create it by hand
- Compute it
- Capture it from a performer
- Animate by example
- Re-use existing motions
- Editing
- Synthesis by Example
|
17
|
- Skilled animators place “key” poses
- Requires incredible amounts of talent
- But can be done extremely well
|
18
|
|
19
|
- Define algorithms to create motions
- Ad-hoc rules, or simulate physics
- Physics provides realism
- But how do you control it?
|
20
|
|
21
|
- Define algorithms to create motions
- Ad-hoc rules, or simulate physics
- Physics provides realism
- But how do you control it?
|
22
|
- Use sensors to record a real person
- Get high-degree of realism
- Which may not be what you want...
- Possibility for real-time performance
|
23
|
|
24
|
- Use sensors to record a real person
- Get high-degree of realism
- Which may not be what you want...
- Possibility for real-time performance
|
25
|
- User markers and special cameras
- Tracking + Math
|
26
|
- An interesting and open problem…
- Limited information
- Problem can be arbitrarily hard
- Or easy – if you make assumptions
- Video is surprisingly bad
|
27
|
- Good motion is hard to get
- Can’t get everything you need
- Need to create motion on the fly
- Re-use existing motions
- Editing (change an existing motion)
- Synthesis by example
- (make a new motion from old ones)
|
28
|
|
29
|
|
30
|
- Human Representation
- Motion Capture and Processing
|
31
|
- Need concise description of pose
- Goal:
- Summarize pose as a vector
- Motion is vector valued function
- Compact, yet flexible
- Make constraints implicit
|
32
|
|
33
|
|
34
|
|
35
|
- It depends!
- Generally, small numbers of degrees of freedom (50-60)
- Easier to animate/specify
- Don’t really see the details from far away
|
36
|
- Small numbers of degrees of freedom for gross motion
- Articulated figures
- Rigid pieces
- Sometimes stretching alowed
- Kinematic joints
- Why this?
|
37
|
- Can't be exact
- Something gets lost
- Don’t want to lose what is important
- What is important?
- Data provides details, essence is hidden inside
|
38
|
|
39
|
- A set of points that undergoes a rigid transformation
- Describe configuration by the rigid transformation
|
40
|
- Mapping f : Rn->Rn
- Defined by properties:
- Has a zero
- Preserves distances
- Preserves handedness
- Is a linear mapping
|
41
|
- Goal: encode rotations in a vector
- Rn - > “set of rotations”
- Give “names” to members of the set of possible rotations
- Many ways to do this, all flawed
- No perfect method
- Use the best one for the job
|
42
|
- Compact
- (as few variables as possible)
- Complete
- Every rotation can be represented
- 1-to-1
- Every rotation has one value
- Every value has one rotation
- Singularity free
- “close” rotations are “close” in value
|
43
|
- We know the rotation is a linear function (e.g. Matrix)
- Use the matrix as the parameterization!
- Any rotation is represented by 1 matrix
- Must preserve distance
- Must preserve handedness
- Must preserve angles
- Positive, Orthonormal matrices
|
44
|
- Not compact
- Not all matrices are orthonormal
- Change 1 number, its not orthonormal
- Sensitive to numerical issues
- Can’t tell quickly
- Given a matrix, determine if orthonormal
- Can’t project quickly
- Given a matrix, find the “closest” orthonormal one
|
45
|
- Given two rotation matrices, M1 and M2
- Can you measure how different they are?
- Can you interpolate them?
- Fortunately, they are closed under multiplication
|
46
|
- 3x3 matrices – 9 parameters
- No intuitive meaning to parameters
- Only supports a few operations
- Apply to point
- Multiply (compose) – beware drift
- Use rotation matrices to apply rotations
- Use other methods to parameterize and manipulate them
|
47
|
- Rotation Matrices
- Euler Angles
- Axis Angle formulation
- Unit Quaternions
- Exponential Co-Ordinates
|
48
|
- Any rotation can be represented by a single rotation about an arbitrary
axis
- Axis / Angle Representation
- Any rotation can be represented by a sequence of 3 rotations around fixed
axes
- Euler Angles
|
49
|
- Not compact (4 numbers, not 3)
- Each rotation represented by many groups of 4 numbers
- Can’t compute with
- Hard to compose
- Hard to compare
- Hard to interpolate
- Inefficient
|
50
|
- Pick 3 axes (XYZ, ZXZ, ZXY, …)
- Compact
- Any 3 numbers is a rotation
- Every rotation has many values
- Singularities
- Not metric (close rotations->different numbers)
- Interpolations can be weird
- OK when 1 axis at a time
- False sense of security that can do math
|
51
|
- Other parameterizations more recent in Computer Graphics
- Quaternions (introduced 1985, popular recently)
- Exponential co-ordinates (introduced 1995, popular recently)
- Both method are old
- Graphics just took a while to discover them
|
52
|
- Rotations in 2D aren’t too hard
- Examine them to see what happens in 3D (where it is much harder)
- Basic problems still occur
|
53
|
- Consider 1 point in 2D, center is the origin
- A rotation maps the point somewhere on the circle
|
54
|
- Not exactly…
- There’s the handedness thing
|
55
|
- No good mapping to the real line
- Real line goes on forever
- Circle wraps around
- Same problems as rotation!
- Note: circle (in 2D) is a 1D set
|
56
|
- Name point by x,y on circle
- Could be a complex number
|
57
|
- Good points
- Every point can be named
- Every point has a unique name
- Close points have similar names
- Bad points
- Not all points are on the circle
- Can’t manipuate vectors
- How to add? Takes you off the circle
|
58
|
- Extension of this idea to 3D rotation
- 4 dimensional complex number
- Real part, 3 imaginary axes (vector)
- Represent 3D rotation as a point on the unit 4-sphere
- Need to stay on sphere
|
59
|
- Multiplication is defined
- Interpolation is defined
- Special methods worked out
- Linear (1985), Cubic (1995)
- Relatively compact
- Singularity free
- “Nearly” 1-to-1
|
60
|
- Can’t add
- Can’t take linear combinations
- Can’t average
- Can’t linear filter
- Distance metric is unclear
|
61
|
- Its easy to get “back on the circle” via reprojection
- Pretend points are in 2D, then project back
- Example: averaging
|
62
|
- Gets the right answer for averaging
- Not for other linear combinations
- Works well when difference is small
- Small angle approximation
- Fails when opposite
- Useful since we can renormalize if computations have problems
|
63
|
- How far around circle?
- (unit radius makes things easier)
- Basically an angle
|
64
|
- Suppose the particle starts “at zero” and has a constant velocity ω
- Where does it end up at the end of a unit of time?
|
65
|
- Velocity is tangent to circle – therefore it is initially upwards
- If circle is in the complex plane, the velocity is purely imaginary
|
66
|
- Velocity as “up” only works if we start at origin
- so always measure from origin
shift the start around
|
67
|
- It’s linear!
- Linearizes the circle around the origin
- Can operate on it
- Not perfect…
- Many different ways to get to any place
|
68
|
- Logarithmic map / Exponential map
- Good for describing the differences between orientations
- Good basis for performing linear operations on orientations
- Filtering
- Averaging
|
69
|
- Use quaternions to represent orientation
- Use tangent space (log map) to perform linearized computations
- Hack often works, almost as well
- Don’t tell anyone I said that!
|
70
|
- Humans too complex
- Some number of connected, rigid pieces
|
71
|
- Angle vs. positional data
- Global vs. relative
- Hierarchical vs. non-hierarchical
- Skeletal vs. Non-Skeletal
|
72
|
|
73
|
- Enforce key constraints
- Connected segments
- Rigid limbs
- Fewer Dof’s
- Only store angles between segments
- Easy for skinning
- Local coordinate systems defined
|
74
|
- Need 3D rotations
- Coupled parameters
- End effector controls require IK
- Forces rigidity
- Problems with reference
- Different ways of defining things
|
75
|
- Abstraction
- Don't know parameters
- Need to know skeleton and relation of skeleton to markers
|