Deformation - Computer Scienceweb.cse.ohio-state.edu/~wang.3602/courses/cse3541-2019... · 2014. 4....

18
Deformation Huamin Wang

Transcript of Deformation - Computer Scienceweb.cse.ohio-state.edu/~wang.3602/courses/cse3541-2019... · 2014. 4....

Page 1: Deformation - Computer Scienceweb.cse.ohio-state.edu/~wang.3602/courses/cse3541-2019... · 2014. 4. 3. · Fx + b. G = 1 2 (F. T. F − I) = ε. uu. ε. uv. ... Cloth Animation •

Deformation

Huamin Wang

Page 2: Deformation - Computer Scienceweb.cse.ohio-state.edu/~wang.3602/courses/cse3541-2019... · 2014. 4. 3. · Fx + b. G = 1 2 (F. T. F − I) = ε. uu. ε. uv. ... Cloth Animation •

Deformation Mode

• A deformation mode specifies how an object is deformed. Cloth and paper:

Compression Tension Shearing Bending

Planar DeformationOut-of-Plane Deformation

Page 3: Deformation - Computer Scienceweb.cse.ohio-state.edu/~wang.3602/courses/cse3541-2019... · 2014. 4. 3. · Fx + b. G = 1 2 (F. T. F − I) = ε. uu. ε. uv. ... Cloth Animation •

Deformation Mode

• A deformation mode describes how an object is deformed. 3D soft bodies:

Page 4: Deformation - Computer Scienceweb.cse.ohio-state.edu/~wang.3602/courses/cse3541-2019... · 2014. 4. 3. · Fx + b. G = 1 2 (F. T. F − I) = ε. uu. ε. uv. ... Cloth Animation •

Three stages in Deformation

Deformation

Forc

e

Elastic DeformationPlastic Deformation

Fracture

If there is no force, the object returns to its rest shape

The object cannot return to its rest shape. (The shape change becomes permanent…)

Page 5: Deformation - Computer Scienceweb.cse.ohio-state.edu/~wang.3602/courses/cse3541-2019... · 2014. 4. 3. · Fx + b. G = 1 2 (F. T. F − I) = ε. uu. ε. uv. ... Cloth Animation •

Linear Elastic Deformation

DeformationFo

rce

Elastic DeformationForce is linearly proportional to deformation.

The deformation-force curve is a straight line.

Commonly known as Hooke’s law!

Page 6: Deformation - Computer Scienceweb.cse.ohio-state.edu/~wang.3602/courses/cse3541-2019... · 2014. 4. 3. · Fx + b. G = 1 2 (F. T. F − I) = ε. uu. ε. uv. ... Cloth Animation •

A 1D Spring

L0 L0 d

Rest Deformed

F = −k(L − L0 )

F = −C LL0

−1

Constant Strain

Page 7: Deformation - Computer Scienceweb.cse.ohio-state.edu/~wang.3602/courses/cse3541-2019... · 2014. 4. 3. · Fx + b. G = 1 2 (F. T. F − I) = ε. uu. ε. uv. ... Cloth Animation •

What is Strain?• A strain is the description of the deformation.• When strain is zero, no deformation (L=L0).• When strain gets bigger, larger deformation.• There are many ways to describe the deformation. • So the strain definition is not unique.

LL0

−1

Cauchy Strain

lnLL0

Log Strain

L2

L02 −1

Green Strain

1−L0

2

L2

Euler-Almansi Strain

Ideal Metal Spring Commonly used in 2D/3D

Page 8: Deformation - Computer Scienceweb.cse.ohio-state.edu/~wang.3602/courses/cse3541-2019... · 2014. 4. 3. · Fx + b. G = 1 2 (F. T. F − I) = ε. uu. ε. uv. ... Cloth Animation •

2D Strain• How to define strain for 2D deformation?• Any point x in the rest shape is deformed into the new

position y: y=Fx+b.• F is a matrix (Deformation Gradient).• b is a translation vector.• If F is orthonormal, what deformation is it?

x0 x1

x2

y0

y1

y2

Basic Assumption:y=Fx + b

Page 9: Deformation - Computer Scienceweb.cse.ohio-state.edu/~wang.3602/courses/cse3541-2019... · 2014. 4. 3. · Fx + b. G = 1 2 (F. T. F − I) = ε. uu. ε. uv. ... Cloth Animation •

2D Strain• The goal is to get the deformation gradient matrix F.

x0 x1

x2

y0

y1

y2

Basic Assumption:y=Fx + b

Since y0=Fx0 + by1=Fx1 + by2=Fx2 + b

y1-y0=F(x1-x0), y2-y0=F(x2-x0)

[y1-y0, y2-y0]=F[x1-x0, x2-x0]

F=[y1-y0, y2-y0] [x1-x0, x2-x0]-1

Page 10: Deformation - Computer Scienceweb.cse.ohio-state.edu/~wang.3602/courses/cse3541-2019... · 2014. 4. 3. · Fx + b. G = 1 2 (F. T. F − I) = ε. uu. ε. uv. ... Cloth Animation •

2D Strain• Once we get F, we can get the Green strain as:

• Intuitively, it is the 1D green strain in u, v, and uv direction.

x0 x1

x2

y0

y1

y2

Basic Assumption:y=Fx + b

G =12

FTF − I( )= εuu εuv

εuv εvv

u

v

uv

Page 11: Deformation - Computer Scienceweb.cse.ohio-state.edu/~wang.3602/courses/cse3541-2019... · 2014. 4. 3. · Fx + b. G = 1 2 (F. T. F − I) = ε. uu. ε. uv. ... Cloth Animation •

2D Stress• Question: what about force?• Force exists in every direction and it varies.• A stress S is a matrix that describes of forces per

unit area.

y0

y1

y2

f f

f

f

Page 12: Deformation - Computer Scienceweb.cse.ohio-state.edu/~wang.3602/courses/cse3541-2019... · 2014. 4. 3. · Fx + b. G = 1 2 (F. T. F − I) = ε. uu. ε. uv. ... Cloth Animation •

Strain-Stress Conversion

• 2D Hooke’s Law!

G =εuu εuv

εuv εvv

S =σ uu σ uv

σ uv σ vv

Strain Stress

σ uu

σ vv

σ uv

=

2µ + λ λλ 2µ + λ

µ

εuu

εvv

εuv

μ and λ are called Lamé constants.

Page 13: Deformation - Computer Scienceweb.cse.ohio-state.edu/~wang.3602/courses/cse3541-2019... · 2014. 4. 3. · Fx + b. G = 1 2 (F. T. F − I) = ε. uu. ε. uv. ... Cloth Animation •

From Stress to Force

x0 x1

x2

y0

y1

y2

y=Fx + b

d02

d10

d21

• Define dij as a vector perpendicular to edge ij:

• The force applied on vertex 0 is: dij =

−(yi − yj )

xi − x j

f0 = −12

FS d10 + d02( )

Page 14: Deformation - Computer Scienceweb.cse.ohio-state.edu/~wang.3602/courses/cse3541-2019... · 2014. 4. 3. · Fx + b. G = 1 2 (F. T. F − I) = ε. uu. ε. uv. ... Cloth Animation •

Cloth Animation

• A cloth piece is made of triangles.• In the plane of each triangle k, we

assume y=Fkx+bk.• After computing the force in the

2D plane, covert it back into the 3D space.

• This idea is known as Finite Element method.

• A triangle is a 2D element.

Page 15: Deformation - Computer Scienceweb.cse.ohio-state.edu/~wang.3602/courses/cse3541-2019... · 2014. 4. 3. · Fx + b. G = 1 2 (F. T. F − I) = ε. uu. ε. uv. ... Cloth Animation •

3D Soft Body Simulation• The same idea, except for everything is now

in 3D.

• Deformation gradient F, strain G, and stress Sare all 3-by-3 matrices!

x0 x1

x3

x2

y0

y1

y3

y2y=Fx + b

F=[y1-y0, y2-y0, y3-y0] [x1-x0, x2-x0, x3-x0]-1

Page 16: Deformation - Computer Scienceweb.cse.ohio-state.edu/~wang.3602/courses/cse3541-2019... · 2014. 4. 3. · Fx + b. G = 1 2 (F. T. F − I) = ε. uu. ε. uv. ... Cloth Animation •

From Stress to Force

• Define dijk as a vector perpendicular to triangle ijk:

• The force applied on vertex 0 is: dijk =

12

x j − xi( )× xk − xi( )

f0 = −13

FS d021 + d013 + d032( )

x0 x1

x3

x2

y0

y1

y3

y2y=Fx + b

Page 17: Deformation - Computer Scienceweb.cse.ohio-state.edu/~wang.3602/courses/cse3541-2019... · 2014. 4. 3. · Fx + b. G = 1 2 (F. T. F − I) = ε. uu. ε. uv. ... Cloth Animation •

2D Algorithm• For every vertex i

– fi=mg;• For every triangle ijk

– F=[y1-y0, y2-y0] [x1-x0, x2-x0]-1 ……… Deformation Gradient

– G=(FTF-I)/2; ……… Green Strain

– S=Strain_To_Stress(G) ……… Stress

– Fi+=-FS(dij+dki)/2 ……… get the force!

– Fj+=-FS(dij+djk)/2 ……… get the force!

– Fk+=-FS(djk+dki)/2 ……… get the force!

• For every vertex i– vi = vi *damping;– vi = vi + t * Force / mi;– xi = xi + t *vi;

Page 18: Deformation - Computer Scienceweb.cse.ohio-state.edu/~wang.3602/courses/cse3541-2019... · 2014. 4. 3. · Fx + b. G = 1 2 (F. T. F − I) = ε. uu. ε. uv. ... Cloth Animation •

3D Algorithm• For every vertex i

– fi=mg;• For every tetrahedron ijkl

– F=[y1-y0, y2-y0, y3-y0] [x1-x0, x2-x0, x3-x0]-1

– G=(FTF-I)/2; – S=Strain_To_Stress(G) ; – Fi+=-FS(dikj+dijl+dilk)/3;– …

• For every vertex i– vi = vi *damping;– vi = vi + t * Force / mi;– xi = xi + t *vi;

More details in http://physbam.stanford.edu/~fedkiw/papers/stanford2003-07.pdf