introduction to computer graphics animation...

21
Introduction to Computer Graphics – Animation (2) – May 25, 2017 Kenshi Takayama

Upload: others

Post on 24-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction to Computer Graphics Animation (2)research.nii.ac.jp/.../slides/iscg-2017-06-animation2-en.pdf · 2. Simple example: single mass & spring in 1D •Mass , position 𝑥,

Introduction to Computer Graphics

– Animation (2) –

May 25, 2017

Kenshi Takayama

Page 2: Introduction to Computer Graphics Animation (2)research.nii.ac.jp/.../slides/iscg-2017-06-animation2-en.pdf · 2. Simple example: single mass & spring in 1D •Mass , position 𝑥,

Physics-based animation of deforming objects

• Classic: faithful simulation of physical phenomena• Mass-spring system

• Finite Element Method (FEM)

• CG-specific: plausible & robust, but not faithful simulation• Shape Matching (Position-Based Dynamics)

2

Page 3: Introduction to Computer Graphics Animation (2)research.nii.ac.jp/.../slides/iscg-2017-06-animation2-en.pdf · 2. Simple example: single mass & spring in 1D •Mass , position 𝑥,

Simple example: single mass & spring in 1D

• Mass 𝑚, position 𝑥, spring coefficient 𝑘, rest length 𝑙, gravity 𝑔 :

𝑚𝑑2𝑥

𝑑𝑡2= −𝑘 (𝑥 − 𝑙) + 𝑔

= 𝑓int 𝑥 + 𝑓ext

• 𝑓ext : External force (gravity, collision, user interaction)

• 𝑓int 𝑥 : Internal force (pulling the system back to original)

• Spring’s internal energy (potential):

𝐸 𝑥 ≔𝑘

2𝑥 − 𝑙 2

• Internal force is the opposite of potential gradient:

𝑓int 𝑥 ≔ −𝑑𝐸

𝑑𝑥= −𝑘 𝑥 − 𝑙

3

Equation of motion

𝑙

𝑥(𝑡) 𝑚 𝑔

𝑂

𝑘

Page 4: Introduction to Computer Graphics Animation (2)research.nii.ac.jp/.../slides/iscg-2017-06-animation2-en.pdf · 2. Simple example: single mass & spring in 1D •Mass , position 𝑥,

Mass-spring system in 3D

• 𝑁 masses: 𝑖-th mass 𝑚𝑖 , position 𝑥𝑖 ∈ ℝ3

• 𝑀 springs: 𝑗-th spring 𝑒𝑗 = 𝑖1, 𝑖2• Coefficient 𝑘𝑗 , rest length 𝑙𝑗

• System’s potential energy for a state 𝐱 = (𝑥1, … , 𝑥𝑁) ∈ ℝ3𝑁:

𝐸 𝐱 ≔

𝑒𝑗= 𝑖1,𝑖2

𝑘𝑗2𝑥𝑖1 − 𝑥𝑖2 − 𝑙𝑗

2

• Equation of motion:

𝐌𝑑2𝐱

𝑑𝑡2= −𝛁𝐸(𝐱) + 𝐟ext

• 𝐌 ∈ ℝ3𝑁×3𝑁 : Diagonal matrix made of 𝑚𝑖 (mass matrix) 4

𝑙𝑗

𝑖2

𝑖1

Page 5: Introduction to Computer Graphics Animation (2)research.nii.ac.jp/.../slides/iscg-2017-06-animation2-en.pdf · 2. Simple example: single mass & spring in 1D •Mass , position 𝑥,

Continuous elastic model in 2D(Finite Element Method)• 𝑁 vertices: 𝑖-th position 𝑥𝑖 ∈ ℝ

2

• 𝑀 triangles: 𝑗-th triangle 𝑡𝑗 = (𝑖1, 𝑖2, 𝑖3)

• Undeformed state: 𝐗 = (𝑋1, … , 𝑋𝑁) ∈ ℝ2𝑁

• Deformed state: 𝐱 = 𝑥1, … , 𝑥𝑁 ∈ ℝ2𝑁

• Deformation gradient:

𝐅𝑗 𝐱 ≔

• System’s potential:𝐸 𝐱 ≔

𝑡𝑗= 𝑖1,𝑖2,𝑖3

𝐴𝑗

2𝐅𝑗 𝐱

⊺𝐅𝑗 𝐱 − 𝐈 ℱ2

• Equation of motion:

𝐌𝑑2𝐱

𝑑𝑡2= −𝛁𝐸(𝐱) + 𝐟ext

• 𝐌 ∈ ℝ2𝑁×2𝑁 : Diagonal matrix made of vertices’ Voronoi areas5

Area of 𝑡𝑗

Green’s strain energy

∈ ℝ2×2

𝑥𝑖 2–𝑥𝑖 1

𝑥𝑖 3–𝑥𝑖 1

𝑋𝑖 2–𝑋𝑖 1

𝑋𝑖 3–𝑋𝑖 1

-1

Tessellate the domain

into triangular mesh

Linear transformation

which maps edges

𝐅

𝐅

Page 6: Introduction to Computer Graphics Animation (2)research.nii.ac.jp/.../slides/iscg-2017-06-animation2-en.pdf · 2. Simple example: single mass & spring in 1D •Mass , position 𝑥,

Computing dynamics

• Problem: Given initial value of position 𝐱(𝑡) and velocity 𝐯 𝑡 ≔𝑑𝐱

𝑑𝑡as

compute 𝐱(𝑡) and 𝐯(𝑡) for 𝑡 > 0. (Initial Value Problem)

• Simple case of single mass & spring:

𝑚𝑑2𝑥

𝑑𝑡2= −𝑘 𝑥 − 𝑙 + 𝑔

analytic solution exists (sine curve)

• General problems don’t have analytic solution From state 𝐱𝑛, 𝐯𝑛 at time 𝑡, compute next state𝐱𝑛+1, 𝐯𝑛+1 at time 𝑡 + ℎ. (time integration)• ℎ: time step

6

𝐱 0 = 𝐱0 and 𝐯 0 = 𝐯0 ,

Page 7: Introduction to Computer Graphics Animation (2)research.nii.ac.jp/.../slides/iscg-2017-06-animation2-en.pdf · 2. Simple example: single mass & spring in 1D •Mass , position 𝑥,

Simplest method: Explicit Euler

Update velocity 𝐯𝑛+1 ← 𝐯𝑛 + ℎ 𝐌−1 (𝐟int(𝐱𝑛) + 𝐟ext)

Update position 𝐱𝑛+1 ← 𝐱𝑛 + ℎ 𝐯𝑛+1

• Pro: easy to compute

• Con: overshooting

• With larger time steps, mass can easilygo beyond the initial amplitude System energy explodes over time

7

Discretize acceleration

using finite difference:

𝐌𝐯𝑛+1−𝐯𝑛

ℎ= 𝐟int 𝐱𝑛 + 𝐟ext

Page 8: Introduction to Computer Graphics Animation (2)research.nii.ac.jp/.../slides/iscg-2017-06-animation2-en.pdf · 2. Simple example: single mass & spring in 1D •Mass , position 𝑥,

Method to be chosen: Implicit Euler

Find 𝐱𝑛+1, 𝐯𝑛+1 such that:

𝐯𝑛+1 = 𝐯𝑛 + ℎ 𝐌−1 𝐟int 𝐱𝑛+1 + 𝐟ext

𝐱𝑛+1 = 𝐱𝑛 + ℎ 𝐯𝑛+1

• Represent 𝐯𝑛+1 using unknown position 𝐱𝑛+1

• Pros: can avoid overshoot

• Cons: expensive to compute (i.e. solve equation)

8

Page 9: Introduction to Computer Graphics Animation (2)research.nii.ac.jp/.../slides/iscg-2017-06-animation2-en.pdf · 2. Simple example: single mass & spring in 1D •Mass , position 𝑥,

Inside of Implicit Euler

• Reduce to root-finding problem of function 𝐅:ℝ3𝑁 ↦ ℝ3𝑁

Newton’s method:

• Coefficient matrix of large linear system changes at every iteration high computational cost! 9

𝐯𝑛+1 = 𝐯𝑛 + ℎ 𝐌−1 𝐟int 𝐱𝑛+1 + 𝐟ext

Denote unknown 𝐱𝑛+1 as 𝐲

𝐱𝑛+1 = 𝐱𝑛 + ℎ 𝐯𝑛+1

𝐲 𝑖+1 ← 𝐲 𝑖 −𝑑𝐅

𝑑𝐲

−1

𝐅(𝐲 𝑖 )

= 𝐱𝑛 + ℎ 𝐯𝑛 + ℎ2𝐌−1 𝐟int 𝐱𝑛+1 + 𝐟ext

= 𝐱𝑛 + ℎ 𝐯𝑛 + ℎ2𝐌−1 −𝛁𝐸 𝐱𝑛+1 + 𝐟ext

= 𝐲 𝑖 − ℎ2𝓗𝐸 𝐲𝑖 +𝐌

−1𝐅(𝐲 𝑖 )

2nd derivative of potential 𝐸 (Hessian matrix)

ℎ2𝛁𝐸 𝐲 +𝐌 𝐲 −𝐌 𝐱𝑛 + ℎ 𝐯𝑛 − ℎ2𝐟ext = 𝟎

𝐅 𝐲

Page 10: Introduction to Computer Graphics Animation (2)research.nii.ac.jp/.../slides/iscg-2017-06-animation2-en.pdf · 2. Simple example: single mass & spring in 1D •Mass , position 𝑥,

• Both:• System potential defined as the sum of deformation energy of small elements• Implicit Euler needed for both

• Mass-spring:• Inappropriate for modeling objects occupying continuous 2D/3D domains• Effective for modeling web-/mesh-like materials• https://www.youtube.com/watch?v=N520KFOxaDg

• FEM:• Higher computational cost in general

• Good domain tessellation• Complex potential energy

• Can handle various (nonlinear) materials• http://graphics.cs.cmu.edu/projects/Bargteil-2007-AFE/Stuff/examples-360.mov

Mass-spring model vs continuous model (FEM)

10

Mass-spring

△〇

FEM

〇△

Physical accuracy

Impl. / comput. cost

Page 11: Introduction to Computer Graphics Animation (2)research.nii.ac.jp/.../slides/iscg-2017-06-animation2-en.pdf · 2. Simple example: single mass & spring in 1D •Mass , position 𝑥,

Physics-based animation of deforming objects

• Classic: faithful simulation of physical phenomena• Mass-spring system

• Finite Element Method (FEM)

• CG-specific: plausible & robust, but not faithful simulation• Shape Matching (Position-Based Dynamics)

11

Page 12: Introduction to Computer Graphics Animation (2)research.nii.ac.jp/.../slides/iscg-2017-06-animation2-en.pdf · 2. Simple example: single mass & spring in 1D •Mass , position 𝑥,

Physics-based animation framework specialized for CG• Pioneering work:

• Meshless deformations based on shape matching[Müller et al., SIGGRAPH 2005]

• Position Based Dynamics[Müller et al.,VRIPhys 2006]

• Basic ideaCompute positions making potential zero (goal position),then pull particles toward them

• System energy always decreases (never explodes)

• Easy to compute perfect for games!

• Not physically meaningful computation (e.g. FEM)• OK for CG purposes 12

https://www.youtube.com/watch?v=CCIwiC37kks

Page 13: Introduction to Computer Graphics Animation (2)research.nii.ac.jp/.../slides/iscg-2017-06-animation2-en.pdf · 2. Simple example: single mass & spring in 1D •Mass , position 𝑥,

Case of single mass & spring (no ext. force)

• 0 ≤ 𝛼 ≤ 1 is “stiffness” parameter unique to PBD• 𝛼 = 0 No update of velocity (spring is infinitely soft)

• 𝛼 = 1 Spring is infinitely stiff (?)

Energy never explodes in any case

• Note: Unit of 𝛼/ℎ is (time)-1 𝛼 has no physical meaning!

• Reason why PBD is called non physics-based but geometry-based

13

𝑣𝑛+1 ← 𝑣𝑛 +ℎ 𝑘

𝑚𝑙 − 𝑥𝑛

𝑥𝑛+1 ← 𝑥𝑛 + ℎ 𝑣𝑛+1

𝑙 𝑥(𝑡)

𝑚

𝑂

𝑘

Explicit Euler Position-Based Dynamics

𝑣𝑛+1 ← 𝑣𝑛 +𝛼

ℎ𝑙 − 𝑥𝑛

𝑥𝑛+1 ← 𝑥𝑛 + ℎ 𝑣𝑛+1

Page 14: Introduction to Computer Graphics Animation (2)research.nii.ac.jp/.../slides/iscg-2017-06-animation2-en.pdf · 2. Simple example: single mass & spring in 1D •Mass , position 𝑥,

Case of general deforming shape (no ext. force)

• Goal position 𝐠• Rest shape rigidly transformed

such that it best matches the current deformed state• (SVD of moment matrix)

• Called “Shape Matching”• One technique within the PBD framework

• Connectivity info (spring/mesh) not needed meshless

14

𝐯𝑛+1 ← 𝐯𝑛 − ℎ 𝐌−1𝛁𝐸 𝐱𝑛

Explicit Euler Position-Based Dynamics

𝐯𝑛+1 ← 𝐯𝑛 +𝛼

ℎ𝐠 𝐱𝑛 − 𝐱𝑛

𝐱𝑛+1 ← 𝐱𝑛 + ℎ 𝐯𝑛+1𝐱𝑛+1 ← 𝐱𝑛 + ℎ 𝐯𝑛+1

𝐱𝑛

𝐠(𝐱𝑛)

𝐱0

Page 15: Introduction to Computer Graphics Animation (2)research.nii.ac.jp/.../slides/iscg-2017-06-animation2-en.pdf · 2. Simple example: single mass & spring in 1D •Mass , position 𝑥,

Shape Matching per (overlapping) local region

• More complex deformations

• Acceleration techniques

15

Local regions from voxel lattice Local regions from octree Animating hair using

1D chain structureFastLSM; fast lattice shape matching for robust real-time deformation [Rivers SIGGRAPH07]

Fast adaptive shape matching deformations [Steinemann SCA08]

Chain Shape Matching for Simulating Complex Hairstyles [Rungjiratananon CGF10]

Page 16: Introduction to Computer Graphics Animation (2)research.nii.ac.jp/.../slides/iscg-2017-06-animation2-en.pdf · 2. Simple example: single mass & spring in 1D •Mass , position 𝑥,

Extension: Deform rest shapes of local regions

16

https://www.youtube.com/watch?v=0AWtQbVBi3s

Autonomous motion of soft bodies Example-based deformations

https://www.youtube.com/watch?v=45QjojWiOEc

ProcDef; local-to-global deformation for skeleton-free character animation [Ijiri PG09]

Real-Time Example-Based Elastic Deformation [Koyama SCA12]

Page 17: Introduction to Computer Graphics Animation (2)research.nii.ac.jp/.../slides/iscg-2017-06-animation2-en.pdf · 2. Simple example: single mass & spring in 1D •Mass , position 𝑥,

Position-Based Dynamics (PBD)

• General framework including Shape Matching

• Input: initial position 𝐱0 & velocity 𝐯0

• At every frame:𝐩 = 𝐱𝑛 + ℎ 𝐯𝑛 prediction

𝐱𝑛+1 = modify 𝐩 position correction

𝐮 = 𝐱𝑛+1 – 𝐱𝑛 /ℎ velocity update

𝐯𝑛+1 = modify 𝐮 velocity correction

17Position Based Dynamics [Müller et al., VRIPhys 2006]

http://www.csee.umbc.edu/csee/research/vangogh/I3D2015/matthias_muller_slides.pdf

(My understanding is still weak)

Page 18: Introduction to Computer Graphics Animation (2)research.nii.ac.jp/.../slides/iscg-2017-06-animation2-en.pdf · 2. Simple example: single mass & spring in 1D •Mass , position 𝑥,

Robust Real-Time Deformation of Incompressible Surface Meshes [Diziol SCA11]

Long Range Attachments - A Method to Simulate Inextensible Clothing in Computer Games [Kim SCA12]

Position Based Fluids [Macklin SIGGRAPH13]

Position-based Elastic Rods [Umetani SCA14]

Position-Based Simulation of Continuous Materials [Bender Comput&Graph14]

Various geometric constraints available in PBD (other than Shape Matching)

18

Twist constraint

Stretch constraint

Volume constraintStrain constraint

Density constraint

Page 19: Introduction to Computer Graphics Animation (2)research.nii.ac.jp/.../slides/iscg-2017-06-animation2-en.pdf · 2. Simple example: single mass & spring in 1D •Mass , position 𝑥,

Putting everything together: FLEX in PhysX

• SDK released by NVIDIA!19Unified Particle Physics for Real-Time Applications [Macklin SIGGRAPH14]

https://www.youtube.com/watch?v=z6dAahLUbZg

Page 20: Introduction to Computer Graphics Animation (2)research.nii.ac.jp/.../slides/iscg-2017-06-animation2-en.pdf · 2. Simple example: single mass & spring in 1D •Mass , position 𝑥,

Collisions

• Another tricky issue

• Popular methods in PBD:• For each voxel grid, record

which particles it contains

• Test collisions only among nearby particles

• Recent method specialized for PBD

20

Collision detection for deformable objects [Teschner CGF05]

Staggered Projections for Frictional Contact in Multibody Systems [Kaufman SIGGRAPHAsia08]

Asynchronous Contact Mechanics [Harmon SIGGRAPH09]

Energy-based Self-Collision Culling for Arbitrary Mesh Deformations [Zheng SIGGRAPH12]

Air Meshes for Robust Collision Handling [Muller SIGGRAPH15]

[Harmon09]

[Zheng12][Kaufman08]

[Muller15]

Page 21: Introduction to Computer Graphics Animation (2)research.nii.ac.jp/.../slides/iscg-2017-06-animation2-en.pdf · 2. Simple example: single mass & spring in 1D •Mass , position 𝑥,

Pointers

• Surveys, tutorials• A Survey on Position-Based Simulation Methods in Computer Graphics [Bender CGF14]

• http://www.csee.umbc.edu/csee/research/vangogh/I3D2015/matthias_muller_slides.pdf

• Position-Based Simulation Methods in Computer Graphics [Bender EG15Tutorial]

• Libraries, implementations• https://code.google.com/p/opencloth/

• http://shapeop.org/

• http://matthias-mueller-fischer.ch/demos/matching2dSource.zip

• https://bitbucket.org/yukikoyama

• https://developer.nvidia.com/physx-flex

• https://github.com/janbender/PositionBasedDynamics

21