13 Mesh Animation Steve Marschner CS5625 Spring 2020 Basic surface - - PowerPoint PPT Presentation

13 mesh animation
SMART_READER_LITE
LIVE PREVIEW

13 Mesh Animation Steve Marschner CS5625 Spring 2020 Basic surface - - PowerPoint PPT Presentation

13 Mesh Animation Steve Marschner CS5625 Spring 2020 Basic surface deformation methods Blend shapes: make a mesh by combining several meshes Mesh skinning: deform a mesh based on an underlying skeleton Both use simple linear algebra Easy to


slide-1
SLIDE 1

13 Mesh Animation

Steve Marschner CS5625 Spring 2020

slide-2
SLIDE 2

Basic surface deformation methods

Blend shapes: make a mesh by combining several meshes Mesh skinning: deform a mesh based on an underlying skeleton Both use simple linear algebra

  • Easy to implement—first thing to try
  • Fast to run—used in games

The simplest tools in the offline animation toolbox

slide-3
SLIDE 3

Blend shapes

Simply interpolate linearly among several key poses

  • Aka. blend shapes or morph targets

[3D Studio Max example]

slide-4
SLIDE 4

Blend shapes

José Alves da Silva—Corlyorn Family (Vodafone campaign)

slide-5
SLIDE 5

Blend shapes math

Simple setup

  • User provides key shapes: a position for every control point in every shape
  • pij for point i, shape j
  • Per frame: user provides a weight wj for each key shape
  • Must sum to 1.0

Computation of deformed shape Works well for relatively small motions

  • Often used for for facial animation
  • Runs in real time; popular for games

p0

i =

X

j

wjpij

slide-6
SLIDE 6

P . Blair, Cartoon Animation.

slide-7
SLIDE 7

Mesh skinning

A simple way to deform a surface to follow a skeleton

[Sébastien Dominé | NVIDIA]

slide-8
SLIDE 8

define handles define weights apply transformations wi Ti H

[Jacobson, SIGGRAPH 2014 course]

slide-9
SLIDE 9

Mesh skinning math: setup

Surface has control points

  • Triangle vertices, spline control points, subdiv base vertices

Each bone has a transformation matrix

  • Normally a rigid motion

Every point–bone pair has a weight

  • In practice only nonzero for small # of nearby bones
  • The weights are provided by the user

Points are transformed by a blended transformation

  • Various ways to blend exist

wij Mj pi

slide-10
SLIDE 10

Linear blend skinning

Simplest mesh skinning method Deformed position of a point is a weighted sum

  • of the positions determined by each bone’s transform alone
  • weighted by that vertex’s weight for that bone

[Lewis et al. SIGGRAPH 2000]

p0

i =

X

j

wijMjpi = @X

j

wijMj 1 A pi

slide-11
SLIDE 11

Linear blend skinning in practice

In practice the bone transformations Mj are not given directly

  • animators want to use transformation hierarchies to animate character position
  • …and also to animate bones

Character mesh is modeled in a canonical pose called “bind pose”

  • chosen for convenience and to keep all parts separated

Skeleton is created first to match bind pose

  • this establishes proximity between bones and surface (which can be used to help author

weights)

Skeleton is also animated over time

slide-12
SLIDE 12

Linear blend skinning in practice

Skinning computations are done in coordinates of skeleton root

  • mesh is modeled in these coordinates
  • root node of skeleton defines these coordinates

Animated bone matrix Mj(t) has to operate on points in skeleton root coords

  • need transform that carries bone j from its bind pose position to its animated position
  • bind pose bone xf defined by bind pose xfs of bones:
  • animated bone xf defined by animated xfs of bones:
  • bone xf in skeleton root coords for skinning equation:

Deformed mesh is then computed in skeleton root coords

  • still needs to be transformed to world coordinates by xfs above skeleton in scene graph

M B

j

<latexit sha1_base64="EsH5VYEyfsvkUqhOhzrO4X8XR6I=">AB7HicbZDLSgMxFIbPeK31VnXpJlgEV2WmTnG6siIG6GCvUBbSyZN2gmMyQZoZSCb+DGhSJufSB3voWPYDqjouIPIR/OYec/H7EmdK2/WbNzM7NLyxmlrLK6tr67mNzboKY0lojYQ8lE0fK8qZoDXNKfNSFIc+Jw2/Ovjab1xQ6ViobjQo4h2AjwQrM8I1saqnXWvLo+6ubxd8Eq2ETLglsHpU/wysgp2Inyh+QqNrNvbZ7IYkDKjThWKmWY0e6M8ZSM8LpJNuOFY0wucYD2jIocEBVZ5wsO0G7xumhfijNERol7s+JMQ6UGgW+6QywHq/tan5X60V67XGTMRxZoKkj7UjznSIZr+HPWYpETzkQFMJDO7IjLEhNt8skmIbjFoufuoxT2nS/wvkOoFwuOWyidu/nKyW0aRwa2YQf2wIEDqMApVKEGBjcwQM8WsK6t56s57R1xkpv2IJfsl4+ANGkMY=</latexit>

M P

j (t)

<latexit sha1_base64="8u+HaBUiru8BrndrghjfaCn20=">AB73icbZDLSgMxFIbPeK31VnXpJlgE3Qwz7RSnKwuCuBEqWFtox5JMxrNXEwyQimCz+DGhSJufR13voWPYDqjouIPIR/OYec/H7CmVSW9WZMTE5Nz8wW5orzC4tLy6WV1RMZp4LQFol5LDo+lpSziLYU5x2EkFx6HPa9i/3xvX2NRWSxdGxGibUC/FZxAJGsNJW57B/cdrcUtv9Utky3ZqlhTQ49fpO7RPcOrJNK1N59x0yNful194gJmlI0U4lrJrW4nyRlgoRji9KfZSRNMLvEZ7WqMcEilN8r2vUGb2hmgIBb6RApl7s+JEQ6lHIa+7gyxOpd/a2Pzv1o3VYHrjViUpIpGJH8oSDlSMRp/Hg2YoETxoQZMBNO7InKOBSZKR1TMQnAqFdepohyq9he43yGcVEzbMWtHTrmxf5vHUYB12IAtsGEHGnATWgBAQ538ACPxpVxbzwZz3nrhJHfsAa/ZLx8AIgKkbc=</latexit>

Mj(t) = M P

j (t) (M B j )−1

<latexit sha1_base64="qYhi7nIiBTx1cdsOShpym57sagA=">ACnicbZDLSgMxFIbPeLfeqi7dRItQctMneJ0IYqCuBEqWBXaWjJpWqOZC0lGKEPBnRtfxY0LRdz6BO58Cx/BdEZFxR9CvOfE5L8bsiZVKb5ZgwMDg2PjI6NZyYmp6ZnsrNzxzKIBKFVEvBAnLpYUs58WlVMcXoaCo9l9MT93K3z+5okKywD9S3ZA2PNzxWZsRrLTVzC4eNC/yagVtIg1nlfqiLuqr+X6xs3IWr1m9ZjZnFpySqYU02OXyRukTnDKyCmai3NY7JKo0s6/1VkAij/qKcCxlzTJD1YixUIxw2svUI0lDTC5xh9Y0+tijshEnX+mhZe20UDsQevkKJe7PEzH2pOx6rp70sDqXf3t9879eLVJtpxEzP4wU9Ul6UTviSAWonwtqMUGJ4l0NmAim34rIORaYKJ1eJgnBLhYdex2lsG59gfMdwnGxYNmF0qGd2967TuMYgwVYgjxYsAHbsA8VqAKBG7iDB3g0bo1748l4TkcHjHSHefgl4+UD7qCZ+g=</latexit>
slide-13
SLIDE 13

Linear blend skinning

Simple and fast to compute

  • Can easily compute in a vertex shader

Used heavily in games Has some issues with deformation quality

  • Watch near joints between very different transforms
slide-14
SLIDE 14

Linear skinning: classic problems

Surface collapses on the inside of bends and in the presence of strong twists

  • Average of two rotations is not a rotation!

[Lewis et al. SG’00] [Mohr & Gleicher SG’03]

slide-15
SLIDE 15

Dual quaternion skinning

Root problem of LBS artifacts: linear blend of rigid motions is not rigid Blending quaternions is better

  • proper spherical interpolation is hard with multiple weights
  • just blending and renormalizing works OK

However, blending rotation and 
 rotation center separately 
 performs poorly

Figure 6: Artifacts produced by blending rotations with respect to the origin (left) are even worse than those of linear blend skinning (right).

[Kavan et al. SG ’08]

slide-16
SLIDE 16

Dual quaternions

Combines quaternions (1, i, j, k) with dual numbers (1, ε)

  • resulting system has 8 dimensions: 1, i, j, k, ε, εi, εj, εk
  • write it as sum of two quaternions:

Unit dual quaternions

  • inherits quaternion constraint:
  • adds one more constraint:
  • a 6D manifold embedded in 8D
  • represents rigid motions with nice properties

Skinning by blending dual quaternions works well

ˆ q = q0 + ✏q✏ kq0k = 1 q0 · q✏ = 0

slide-17
SLIDE 17

Figure 14: Comparison of linear (left) and dual quaternion (right)

  • blending. Dual quaternions preserve rigidity of input transforma-

tions and therefore avoid skin collapsing artifacts.

[Kavan et al. SG ’08]

Rest pose Linear blend skinning Dual quaternion skinning

[Kavan, SG’14 course]