CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for...

51
CS 231 Animation Using Dynamic Simulation

Transcript of CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for...

Page 1: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

CS 231

Animation Using Dynamic Simulation

Page 2: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

What is dynamics for animation?

forward

dynamics

integrator

graphics

state

Loosely, using physical rules

or principles to animate, a

procedural approach

Usually, the use of a forward

dynamics model and numeric

routine to compute motion

Got its start in engineering

simulation and robotics

Page 3: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Forward Dynamics vs. Inverse Dynamics

force and

torque

acceleration,

velocity

forward

inverse

Forward: given forces and torques, compute

acceleration, velocity, and finally position

Inverse: given motion (positions), compute the

forces and torques

Page 4: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Why use forward dynamics?

Captures realistic movements because it is

based on physical constraints

Can provide high-level control over

animation

Can allow principled methods for animated

elements to communicate – leading to

rich simulated worlds

AKA: initial value problem

Page 5: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Types of simulations

Passive

Particle systems

Spring/Mass systems

Rigid bodies

Active

Articulated rigid bodies - linkages

Page 6: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Passive vs Active dynamics

model of

dynamics

integrator

graphics

control

user

inputs

model of

dynamics

integrator

graphicsuser

inputs

Passive

Active

Page 7: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Maya, etc support passive dynamics

Particles, deformations (cloth), rigid bodies

Gravity, collisions, friction

Page 8: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Spring-mass systems

2D meshes = cloth

3D meshes = jello,blobs

Page 9: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Particle (Mass) System

F(t) = ma

x’’ = F(t)/m - One second order equation

mtF

tv

tv

tx

dt

dY

dt

d

/)(

)(

)(

)(

or:

v’ = F(t)/m - Two first order equations

x’ = v

Page 10: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Particle (Mass) System

Use Euler Integration to update:

1) Find New Velocity:

2) Find New Position: tttvtxttx )()()(

tm

tFtvttv

)()()(

Page 11: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Gravity

(mg)

Particle (mass) system

Page 12: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Gravity

External Force

Particle (mass) system

xtktxf )(),(

Example:

Page 13: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Vector field

The differential equation

defines a vector field

over x

),( txfx

Differential equation – visual review

Page 14: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Initial value problem

Given the starting point,

follow the integral curve

Page 15: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Euler integration

),()()( txtftxttx

Simplest numerical solution method

Discrete time steps

Bigger steps, bigger errors

Page 16: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Inaccuracy

Error turns this x(t),

a circle into different

spirals defined by

step size

Page 17: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Inaccuracy

Inaccuracy can lead to

instability

Page 18: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Midpoint method

a) Compute a “full” Euler step

b) Evaluate f at midpoint, fmid

c) Take a step from the original point

using the midpoint f value:

midtftxttx )()(

Page 19: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Approximation of Taylor Series

Many kinds of integrators

...!3

)()(

!2

)()(

!1

)()()()(

32

ax

afax

afax

afafxf

Page 20: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Further rolling out of the Taylor Series leads to:

Fourth Order – Runga-Kutta Integration

Many kinds of integrators

))(,(

)2

1)(,

2(

)2

1)(,

2(

))(,(

)22(6

)()(

34

23

12

1

4321

tktxttfk

tktxt

tfk

tktxt

tfk

txtfk

kkkkt

txttx

Page 21: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Leapfrog integrator

Instead of

Leapfrog splits as

Many kinds of integrators

mtF

tv

tv

tx

dt

dY

dt

d

/)(

)(

)(

)(

tvxx iii 2/11

tavv iii )2/1()2/1(

)2/1()2/1( ii vvAt i+=1

Page 22: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Many kinds of integrators

Adaptive Steps

Take a full step and two half steps from starting

point

Compare results

If difference is greater than threshold, then reduce

time step

Else, possibly increase time step

Also, implicit integrator - to be covered

Page 23: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

x0(t)

v0(t)

Particle Physics

x1(t)

v1(t)

mtF

tv

tv

tx

dt

dY

dt

d

/)(

)(

)(

)(

Page 24: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

What is different about rigid body motion?

position,

velocity

rotation

angular velocity

Also, in addition to mass, m,

and rotational inertia, I

Page 25: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

iFtF )(

Net force

x(t)

v(t)

F1F2

F3

Page 26: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

?

)(

?

)(

tF

tv

Yx(t)

v(t)

Body State

Page 27: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

?

)(

?

)(

?

)(

?

)(

tF

tv

tMv

tx

dt

dY

dt

d

Rigid Body Equation of Motion

Page 28: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Lets represent angular velocity as a vector w(t)

which is both spin direction and speed

Orientation change

How are R(t) and w(t) related?

w(t)

Page 29: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Angular Velocity

Consider w(t) affect on simple velocity:

xx w

x

wx

Page 30: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

)(

0)()(

)(0)(

)()(0

)( tx

tt

tt

tt

txdt

d

xy

xz

yz

ww

ww

ww

Angular Velocity

Change in x(t) due to w(t) can be specified as:

Page 31: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

)(

0)()(

)(0)(

)()(0

)( tR

tt

tt

tt

tRdt

d

xy

xz

yz

ww

ww

ww

Angular Velocity

w*(t) will be shorthand for this matrix

Change in R(t) due to w(t) is specified as:

Page 32: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

?

)(

)()(

)(

?

)(

)(

)(

*

tF

tRt

tv

tMv

tR

tx

dt

dY

dt

d w

Rigid Body Equation of Motion

Page 33: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Need to relate w(t) and mass to F(t)

?

)(

)()(

)(

)(

)(

)(

)(

*

tF

tRt

tv

t

tMv

tR

tx

dt

dY

dt

d w

w

Rigid Body Equation of Motion

Page 34: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Inertia Tensor

IzzIzyIzx

IyzIyyIyx

IxzIxyIxx

tI )(

Relate angular velocity derivative and mass

distribution

Page 35: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Rigid Body Equation of Motion

?

)(

)()(

)(

)(

)(

)(

)(

*

tF

tRt

tv

t

tMv

tR

tx

dt

dY

dt

d w

w

Page 36: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

?

)(

)()(

)(

)()(

)(

)(

)(

*

tF

tRt

tv

ttI

tMv

tR

tx

dt

dY

dt

d w

w

Rigid Body Equation of Motion

Page 37: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Rigid Body Equation of Motion

)(

)(

)()(

)(

)()(

)(

)(

)(

*

t

tF

tRt

tv

ttI

tMv

tR

tx

dt

dY

dt

d

w

w

Page 38: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

iFtF )(

Net force

x(t)

v(t)

F1F2

F3

Page 39: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Net torque

x(t)

F1F2

F3

ii Ftxpt ))(()(

p1

p2

p3

Page 40: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

A few notes on the Inertia Tensor…

IzzIzyIzx

IyzIyyIyx

IxzIxyIxx

tI )(

Page 41: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

dm

r = moment arm

dmrI2

Computing Inertia

Page 42: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Parallel-Axis

Ix = Iy = 1/12 m (3r2 + l2)

Iz = mr2/2

I = Io + md2

d

Computing Inertia

Page 43: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Approximating Ibody – Point Sampling

Pros: Simple, fairly accurate

Cons: Expensive, requires volume test

Page 44: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Inertia tensor varies in world space,

but not in body space for a rigid body

Page 45: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Rigid Body Equations of Motion

)(

)(

)()(

)(

)()(

)(

)(

)(

*

t

tF

tRt

tv

ttI

tMv

tR

tx

dt

dY

dt

d

w

w

Page 46: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

)(

)(

)()(

)(

)()(

)(

)(

)(

*

t

tF

tRt

tv

ttI

tMv

tR

tx

dt

dY

dt

d

w

w

Rigid Body Equations of Motion

L(t) – linear momentum

H(t) – angular momentum

Page 47: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Additional forces

Gravitational forces

Wind/air resistance

Collisions/impacts

Friction

Sliding – box on plane

Rolling - wheel

Page 48: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Forces for collision response

Page 49: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Articulated rigid bodies

Linked chain of bodies,

Possibly branching

Joint types:

Slider, telescoping

Hinge

Universal Joint

Gimbal

Ball and socket

Page 50: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules

Equations of motion often computed

automatically (commercial solvers)

No control = rag doll

Must provide control

Articulated rigid bodies

Page 51: CS 231 Animation Using Dynamic Simulationvbz/cs231f15/lecture07-15.pdf · What is dynamics for animation? forward dynamics integrator graphics state Loosely, using physical rules