Deforming Objects
description
Transcript of Deforming Objects
![Page 1: Deforming Objects](https://reader030.fdocuments.us/reader030/viewer/2022033101/56814650550346895db3621f/html5/thumbnails/1.jpg)
Rick Parent - CIS681
Deforming Objects
Free-Form Deformations (FFDs)
Global Deformations
Non-Uniform Scale
Grid Deformations
Skeletal Deformations
![Page 2: Deforming Objects](https://reader030.fdocuments.us/reader030/viewer/2022033101/56814650550346895db3621f/html5/thumbnails/2.jpg)
Rick Parent - CIS681
Non-uniform Scale
Transformation matrix - diagonal elements
0
1
Sx
Sy
Sz
0
0
0
0
0
0 0
0
00 0
![Page 3: Deforming Objects](https://reader030.fdocuments.us/reader030/viewer/2022033101/56814650550346895db3621f/html5/thumbnails/3.jpg)
Rick Parent - CIS681
Non-uniform Scale
![Page 4: Deforming Objects](https://reader030.fdocuments.us/reader030/viewer/2022033101/56814650550346895db3621f/html5/thumbnails/4.jpg)
Rick Parent - CIS681
Global Deformations
Transformation matrix elements - functions of coordinates
f(x,y,z) g(x,y,z)
![Page 5: Deforming Objects](https://reader030.fdocuments.us/reader030/viewer/2022033101/56814650550346895db3621f/html5/thumbnails/5.jpg)
Rick Parent - CIS681
Global Deformations - taper
![Page 6: Deforming Objects](https://reader030.fdocuments.us/reader030/viewer/2022033101/56814650550346895db3621f/html5/thumbnails/6.jpg)
Rick Parent - CIS681
Global Deformations - taper
![Page 7: Deforming Objects](https://reader030.fdocuments.us/reader030/viewer/2022033101/56814650550346895db3621f/html5/thumbnails/7.jpg)
Rick Parent - CIS681
Global Deformations - twist
x’ = x*cos(f(y)) – z*sin(f(y))y’ = y z’ = x*sin(f(y)) + z*cos(f(y))
![Page 8: Deforming Objects](https://reader030.fdocuments.us/reader030/viewer/2022033101/56814650550346895db3621f/html5/thumbnails/8.jpg)
Rick Parent - CIS681
Global Deformations - twist
![Page 9: Deforming Objects](https://reader030.fdocuments.us/reader030/viewer/2022033101/56814650550346895db3621f/html5/thumbnails/9.jpg)
Rick Parent - CIS681
Global Deformations - rotate
![Page 10: Deforming Objects](https://reader030.fdocuments.us/reader030/viewer/2022033101/56814650550346895db3621f/html5/thumbnails/10.jpg)
Rick Parent - CIS681
Global Deformations - rotate
![Page 11: Deforming Objects](https://reader030.fdocuments.us/reader030/viewer/2022033101/56814650550346895db3621f/html5/thumbnails/11.jpg)
Rick Parent - CIS681
Global Deformations - compound
![Page 12: Deforming Objects](https://reader030.fdocuments.us/reader030/viewer/2022033101/56814650550346895db3621f/html5/thumbnails/12.jpg)
Rick Parent - CIS681
Skeletal Deformation
![Page 13: Deforming Objects](https://reader030.fdocuments.us/reader030/viewer/2022033101/56814650550346895db3621f/html5/thumbnails/13.jpg)
Rick Parent - CIS681
Skeletal Deformation
Interior angle bisectors
Perpendiculars at end points
![Page 14: Deforming Objects](https://reader030.fdocuments.us/reader030/viewer/2022033101/56814650550346895db3621f/html5/thumbnails/14.jpg)
Rick Parent - CIS681
Skeletal Deformation
d
L
s
Get object
Draw polyline
Map vertices to polyline
Warp polyline
Reposition vertices to polyline
![Page 15: Deforming Objects](https://reader030.fdocuments.us/reader030/viewer/2022033101/56814650550346895db3621f/html5/thumbnails/15.jpg)
Rick Parent - CIS681
Skeletal Deformation
![Page 16: Deforming Objects](https://reader030.fdocuments.us/reader030/viewer/2022033101/56814650550346895db3621f/html5/thumbnails/16.jpg)
Rick Parent - CIS681
Grid Deformation
2D technique used in the film HUNGER
Overlay 2D grid on top of object
Map object vertices to grid cells (create local coordinate system)
User distorts 2D grid vertices
Object vertices are remapped to local coordinate system of 2D grid by using bilinear interpolation
![Page 17: Deforming Objects](https://reader030.fdocuments.us/reader030/viewer/2022033101/56814650550346895db3621f/html5/thumbnails/17.jpg)
Rick Parent - CIS681
Grid Deformation
![Page 18: Deforming Objects](https://reader030.fdocuments.us/reader030/viewer/2022033101/56814650550346895db3621f/html5/thumbnails/18.jpg)
Rick Parent - CIS681
Grid Deformation
0.5
0.8
For each vertexIdenify cellLocal u,v coorindate
![Page 19: Deforming Objects](https://reader030.fdocuments.us/reader030/viewer/2022033101/56814650550346895db3621f/html5/thumbnails/19.jpg)
Rick Parent - CIS681
Grid Deformation
Bilinear interpolationPu0 = (1-u)*P00 + u*P10Pu1 = (1-u)*P01 + u*P11Puv = (1-v)*P0u + v*P1u
P00
P01
P01
P11
Pu0
Pu1
![Page 20: Deforming Objects](https://reader030.fdocuments.us/reader030/viewer/2022033101/56814650550346895db3621f/html5/thumbnails/20.jpg)
Rick Parent - CIS681
Grid Deformation
![Page 21: Deforming Objects](https://reader030.fdocuments.us/reader030/viewer/2022033101/56814650550346895db3621f/html5/thumbnails/21.jpg)
Rick Parent - CIS681
Grid Deformation
![Page 22: Deforming Objects](https://reader030.fdocuments.us/reader030/viewer/2022033101/56814650550346895db3621f/html5/thumbnails/22.jpg)
Rick Parent - CIS681
Free-Form Deformations
(not necessarily mutually perpendicular)
S
T
U
Define local coordinate system for deformation
![Page 23: Deforming Objects](https://reader030.fdocuments.us/reader030/viewer/2022033101/56814650550346895db3621f/html5/thumbnails/23.jpg)
Rick Parent - CIS681
FFD - register point in cell
S
T
U
![Page 24: Deforming Objects](https://reader030.fdocuments.us/reader030/viewer/2022033101/56814650550346895db3621f/html5/thumbnails/24.jpg)
Rick Parent - CIS681
FFD - register point in cell
s = (TxU) . (P-P0) / ((TxU) . S)
TxU U
S
T
P
P0
((TxU) . S) (TxU) . (P-P0)
P = P0 + sS + tT + uU
![Page 25: Deforming Objects](https://reader030.fdocuments.us/reader030/viewer/2022033101/56814650550346895db3621f/html5/thumbnails/25.jpg)
Rick Parent - CIS681
FFD - create control grid
(not necessarily mutually perpendicular)
![Page 26: Deforming Objects](https://reader030.fdocuments.us/reader030/viewer/2022033101/56814650550346895db3621f/html5/thumbnails/26.jpg)
Rick Parent - CIS681
FFD - move and reposition
Move control grid points
Usually tri-cubic interpolation is used with FFDs
Originally Bezier interpolation was used.
B-spline and Catmull-Romm interpolation have also been used (as well as tri-linear interpolation)
![Page 27: Deforming Objects](https://reader030.fdocuments.us/reader030/viewer/2022033101/56814650550346895db3621f/html5/thumbnails/27.jpg)
Rick Parent - CIS681
FFD - extensions
Hierarchical FFDs
Animated FFD
Static FFD that object moves through
Non-parallelpiped FFD
![Page 28: Deforming Objects](https://reader030.fdocuments.us/reader030/viewer/2022033101/56814650550346895db3621f/html5/thumbnails/28.jpg)
Rick Parent - CIS681
FFD - films and videos
examples
Boppin’ in Bean Town by John Chadwick
Facit demo by Beth Hofer
Balloon Guy by Chris Wedge