#### Transcript AS-RIGID-AS-POSSIBLE SHAPE MANIPULATION

### AS-RIGID-AS-POSSIBLE SHAPE MANIPULATION

**T A K E O I G A R A S H I T H E U N I V E R S I T Y O F T O K Y O T O M E R M O S C O V I C H B R O W N U N I V E R S I T Y J O H N F . H U G H E S B R O W N U N I V E R S I T Y**

### INTRODUCTION

INTRODUCTION RELATED WORK OVERVIEW ALGORITHM EXTENSIONS RESULTS FUTURE WORK We present a two-step closed-form algorithm that achieves real-time interaction.

The first step finds an appropriate rotation for each triangle.

The second step adjusts its scale.

Each step uses a quadratic error metric so that the minimization problem is formulate as a set of simultaneous linear equations.

### RELATED WORK

INTRODUCTION RELATED WORK OVERVIEW ALGORITHM EXTENSIONS RESULTS FUTURE WORK SHAPE MANIPULATION TECHNIQUES FALL ROUGHLY INTO TWO CATEGORIES: Deform the space in which the target shape is embedded.

[Lewis et al. 2000] --using predefined skeleton. [McCracken and Joy 1996] --each point is associated with a closed region in a FFD grid.

Deform the shape while taking its structure into account.

[Gibson and Mirtich1997] --mass-spring models.

### OVERVIEW

INTRODUCTION RELATED WORK OVERVIEW ALGORITHM EXTENSIONS RESULTS FUTURE WORK a)Triangulation and registration(pre-computed) Input a 2D model Silhouette : marching squares algorithm Triangulation : Delaunay triangulation Registration : accelerate the computation during interaction

### OVERVIEW

INTRODUCTION RELATED WORK OVERVIEW ALGORITHM EXTENSIONS RESULTS FUTURE WORK b)Compilation(pre-computed) User clicks on the shape to place handles.

So far, user can only place handles at existing mesh vertices.

c)Manipulation User drags the handles to make a deformation of the shape.

Also support multiple-point input devices.

During interaction, update the handle configuration to solve the quadratic error functions.

### ALGORITHM

INTRODUCTION RELATED WORK OVERVIEW ALGORITHM EXTENSIONS RESULTS FUTURE WORK Overview of the algorithm

### ALGORITHM

INTRODUCTION RELATED WORK OVERVIEW ALGORITHM EXTENSIONS RESULTS FUTURE WORK Step 1 : scale-free construction(allow rotation and uniform scaling)

*v*

2

*v*

0

*v*

2

*desired*

*x*

01

*v*

0

*v*

1

*y*

01

*R*

90

*v*

0

*v*

1

*R*

90 0 1

*v*

0 '

*x*

01

*v*

0 '

*v*

1 '

*y*

01

*R*

90

*v*

0 '

*v*

1 ' 0 1

### ALGORITHM

INTRODUCTION RELATED WORK OVERVIEW ALGORITHM EXTENSIONS RESULTS FUTURE WORK Step 1 : scale-free construction(allow rotation and uniform scaling) The error between v 2 desired and *v*

*2 ’ is then represented as E*

{

*v*

2 }

*v*

2

*desired*

*v*

2 ' 2 We can define v 0 desired and v 1 desired similarly, so the error associated with the triangle is

*E*

{

*v*

0 ,

*v*

1 ,

*v*

2 }

*i*

1 , 2 , 3

*v i desired*

*v i*

' 2

### ALGORITHM

INTRODUCTION RELATED WORK OVERVIEW ALGORITHM EXTENSIONS RESULTS FUTURE WORK Step 1 : scale-free construction(allow rotation and uniform scaling) The error for the entire mesh is simply the sum of errors for all triangles in the mesh. We can express it in matrix form:

*E*

1 {

*v*

' }

*v*

'

*T Gv*

'

*u q*

*T*

*G*

00

*G*

10

*G G*

01 11

*u q*

The minimization problem is solved by setting the partial Derivatives of the function E 1{v’} with respect to the free variables u in v’ to zero.

*E*

1

*u*

(

*G*

00

*G*

00

*T*

)

*u*

(

*G*

01

*G*

10

*T*

)

*q*

0

### ALGORITHM

INTRODUCTION RELATED WORK OVERVIEW ALGORITHM EXTENSIONS RESULTS FUTURE WORK Step 1 : scale-free construction(allow rotation and uniform scaling) Rewrite as

*G*

'

*u*

*Bq*

0 G’ and B are fixed and only q changes during manipulation. Therefore, we can obtain u by simple matrix multiplication by pre-computing G’ -1 B at the beginning.

### ALGORITHM

INTRODUCTION RELATED WORK OVERVIEW ALGORITHM EXTENSIONS RESULTS FUTURE WORK Step 2 : scale adjustment Fitting the original triangle to the intermediate triangle

*v*

2

*fitted*

*v*

0

*fitted*

*x*

01

*v*

0

*fitted v*

1

*fitted*

*y*

01

*R*

90

*v*

0

*fitted v*

1

*fitted*

### ALGORITHM

INTRODUCTION RELATED WORK OVERVIEW ALGORITHM EXTENSIONS RESULTS FUTURE WORK Step 2 : scale adjustment Fitting the original triangle to the intermediate triangle Given a triangle{v 0 ’,v 1 ’,v 2 ’}in the intermediate result and corresponding triangle in the rest shape{v 0 ,v 1 ,v 2 },the first problem is to find a new triangle{v 0 fitted ,v 1 fitted ,v 2 fitted }that is congruent to{v 0 ,v 1 ,v 2 }and minimizes the following function.

*E f*

{

*v*

0

*fitted*

,

*v*

1

*fitted*

,

*v*

2

*fitted*

}

*i*

1 , 2 , 3

*v i fitted*

*v i*

' 2

### ALGORITHM

INTRODUCTION RELATED WORK OVERVIEW ALGORITHM EXTENSIONS RESULTS FUTURE WORK Step 2 : scale adjustment Fitting the original triangle to the intermediate triangle We minimize E f by setting the partial derivatives of E f to zero.

*E*

*w f*

*Fw*

*C*

0 By solving this equation, we obtain a newly fitted triangle {*v*

*0*

fitted ,*v*

*1*

fitted , *v*

*2*

fitted } that is similar to the original triangle {*v*

*0 , v 1 , v 2*

*}. We *make it congruent simply by scaling the fitted triangle by the factor of

*v*

0

*fitted*

*v*

1

*fitted*

/

*v*

0

*v*

1

### ALGORITHM

INTRODUCTION RELATED WORK OVERVIEW ALGORITHM EXTENSIONS RESULTS FUTURE WORK Step 2 : scale adjustment Generating the final result using the fitted triangles We can define the quadratic error function by

*E*

2 {

*v*

0 ' ,'

*v*

1 ' ,'

*v*

2 '' } (

*i*

,

*j*

) {( 0 , 1 ), ( 1 , 2 ), ( 2 , 0 )}

*v i*

''

*v j*

''

*v i fitted v j fitted*

2

### ALGORITHM

INTRODUCTION RELATED WORK OVERVIEW ALGORITHM EXTENSIONS RESULTS FUTURE WORK Step 2 : scale adjustment Generating the final result using the fitted triangles The error for the entire mesh can be represented as :

*E*

2 {

*v*

'' }

*v*

''

*T Hv*

''

*fv*

''

*c*

*u q*

*T*

*H H*

00 10

*H*

01

*H*

11

*u q*

(

*f*

0

*f*

1 )

*u q*

*c*

We minimize E 2

*E*

2

*u*

(

*H*

00 by setting the partial derivatives of E 2

*H*

00

*T*

)

*u*

(

*H*

01

*H*

10

*T*

)

*q*

*f*

0 0 to zero.

Rewrite as

*H*

'

*u*

*Dq*

*f*

0 0

### ALGORITHM

INTRODUCTION RELATED WORK OVERVIEW ALGORITHM EXTENSIONS RESULTS FUTURE WORK Algorithm summary

### EXTENSIONS

INTRODUCTION RELATED WORK OVERVIEW ALGORITHM EXTENSIONS RESULTS FUTURE WORK Collision detection and depth adjustment

### EXTENSIONS

INTRODUCTION RELATED WORK OVERVIEW ALGORITHM EXTENSIONS RESULTS FUTURE WORK Weights for controlling rigidity

### EXTENSIONS

INTRODUCTION RELATED WORK OVERVIEW ALGORITHM EXTENSIONS RESULTS FUTURE WORK Animations

INTRODUCTION RELATED WORK OVERVIEW ALGORITHM EXTENSIONS RESULTS FUTURE WORK

### EXTENSIONS

As-rigid-as-possible curve editing

INTRODUCTION RELATED WORK OVERVIEW ALGORITHM EXTENSIONS RESULTS FUTURE WORK

### EXTENSIONS

As-rigid-as-possible curve editing

INTRODUCTION RELATED WORK OVERVIEW ALGORITHM EXTENSIONS RESULTS FUTURE WORK

### RESULTS

### FUTURE WORK

INTRODUCTION RELATED WORK OVERVIEW ALGORITHM EXTENSIONS RESULTS FUTURE WORK Determine the depth order of the overlapping regions.

Extend the technique to 3D shapes.

Allow users to put handles at arbitrary locations.

Volume preservation.