4. • Barycentric coordinates on a line
• :
Introduction — Barycentric Coordinates
4
pc1p c2p
d1d2
p = b1p1 + b2p2
b1 =
d1
d
b2 =
d2
d
d = d1 + d2
b1 + b2 = 1
5. • Barycentric coordinates on a triangle
• Barycentric coordinates of :
Introduction — Barycentric Coordinates
5
p
c1
c2 c3
{wi} p
p =
X
i
wici,
X
i
wi = 1
6. • Given a point inside a polygon with vertices
Introduction — Barycentric Coordinates
c1
c2
c3 c4
c5
{ci}
p
p
6
7. • Given a point inside a polygon with vertices
• Barycentric coordinates of :
Introduction — Barycentric Coordinates
7
{ci}
{wi}
c1
c2
c3 c4
c5
p
p
p
p =
X
i
wici,
X
i
wi = 1
8. • Given a point inside a polygon with vertices
• Barycentric coordinates of :
Introduction — Barycentric Coordinates
8
{ci}
{wi}
c1
c2
c3 c4
c5
p
p
p
p =
X
i
wici,
X
i
wi = 1
functions inside the polygon
11. Introduction — Application
11
c2
c3 c4
c5
c1
• Application: interpolation
x
f(x) =
X
i
wi(x) f(ci)
interpolated value values at vertices
coordinate function
15. Main Goal: Local Control
15
• Control points influence nearby regions only
16. Previous Work
16
Schaefer / Poisson-based Weight Reduction of Animated Meshes
) is stretched
(middle) and
onds to vertex
exhibits some
odel is locally
ing relatively
echniques are
h is weighted
rol mesh. As
s, the storage
esh’s vertices
ontrol meshes
tions may be
any deforma-
will influence
moves a sin-
ertices on the
ch movement
ulated figures
ody part to be
Figure 3: An example of our weight reduction applied to a
model of Buddha in the rest pose (left) and deformed poses
(right). The model was reduced from 45 weights down to 12
weights using our Poisson reduction and is indistinguishable
from the original model.
ber of weights to maximize computational efficiency. Fig-
ure 3 demonstrates the type of reduction possible with our
method. In this example each vertex of the Buddha model is
weighted by all 45 vertices of the control mesh. After weight
reduction, each vertex has a maximum of 12 weights and the
model is virtually identical to the original under deforma-
tion.
1.1. Contributions
We present a Poisson-based optimization technique that re-
duces the number of control point influences of a deformable
mesh to a specified count. To expose the limited degrees of
freedom in the model we require the user to specify a num-
ber of example poses demonstrating the set of plausible de-
formations of the character. From these examples we show
that we can maintain the appearance of the surface under
deformation and provide an iterative optimization technique
Poisson-based Weight Reduction
[Landreneau & Schaefer 2009]
Bounded Biharmonic Weights (BBW)
[Jacobson et al. 2011]
12 • Gonz´alez Garc´ıa, F. et al.
Fig. 16. Deformations of the Sintel model (66845 triangles) using *Cages. Left: Cages at binding time with differen
Red - HC, and pink cage boundaries). Right: Composition of different poses.
Fig. 15. Deformation involving interior points of the ”Easter Egg” model
using *Cages. Left: The model and the grid of cages at binding time. High-
lighted vertices are interior points. Right: Composition of two different de-
formations.
Sintel model (column 2). The total time required for the preprocess
is shown in column 3, specifying the amount of time dedicated
to compute the coordinates with respect to the parent cages.
Also, *Cages takes much less time to compute cage coordinates
because each of the cages used are simpler and smaller than a
whole single cage. The rest of the time is needed to compute join
cages and the coordinates with respect to them. In the case of
using GC, *Cages requires even less preprocessing time because
of the nature of their computations [Lipman et al. 2008]. The
deformation times (column 4) are the averages of the times needed
for the deformation of a cage vertex. Observe that our approach is
significantly faster for both models, where we achieve between 3
and 5 times the speed of MVC, and between 7 and 18 times that of
GC.
We would like to emphasize that, even our code is unopti-
mized and CPU-based, *Cages allows for a more GPU-friendly
implementation than single cage-based approaches do, as it has
a much lower number of weights to store for each mesh vertex.
Moreover, unlike the technique presented by Landreneau and
Schaefer [2010], we don’t need to be constrained by having to
of predetermined poses to be
consumption. Instead, we giv
any type of deformation wh
time requirements small, as
fully compatible with the w
[2010], and our computation
even more if used together:
for both cage and join trans
benefit *Cages the most, as jo
tationally demanding to evalua
*Cages is not related with
As the examples throughout th
individual cages, the union of
entire model. This has been d
to previous single cage-based
don’t need to create the whole
single cage. For instance, if w
the Sintel model shown in Fig
all the cages shown there, we o
to make this task simpler. More
deform a small region is usua
of many cages to deform a mes
element for the cage-modeling
As a space deformation app
same domains as previous met
cages of our hierarchy could b
Ju at al. [2008] did. Thanks to
we could provide a finer degre
as a result, a smoother final an
to perform deformations in 2D
requirements described in Se
method that can be also integ
niques that uses other types o
Jacobson et al. [2011]. For ins
a certain region of the model
deformations with MVC/HC or
the bounded biharmonic weig
*Cages
[García et al. 2013]
1. Hard to find out a proper threshold
2. Highly depend on the example sets
17. Previous Work
17
Schaefer / Poisson-based Weight Reduction of Animated Meshes
) is stretched
(middle) and
onds to vertex
exhibits some
odel is locally
ing relatively
echniques are
h is weighted
rol mesh. As
s, the storage
esh’s vertices
ontrol meshes
tions may be
any deforma-
will influence
moves a sin-
ertices on the
ch movement
ulated figures
ody part to be
Figure 3: An example of our weight reduction applied to a
model of Buddha in the rest pose (left) and deformed poses
(right). The model was reduced from 45 weights down to 12
weights using our Poisson reduction and is indistinguishable
from the original model.
ber of weights to maximize computational efficiency. Fig-
ure 3 demonstrates the type of reduction possible with our
method. In this example each vertex of the Buddha model is
weighted by all 45 vertices of the control mesh. After weight
reduction, each vertex has a maximum of 12 weights and the
model is virtually identical to the original under deforma-
tion.
1.1. Contributions
We present a Poisson-based optimization technique that re-
duces the number of control point influences of a deformable
mesh to a specified count. To expose the limited degrees of
freedom in the model we require the user to specify a num-
ber of example poses demonstrating the set of plausible de-
formations of the character. From these examples we show
that we can maintain the appearance of the surface under
deformation and provide an iterative optimization technique
Poisson-based Weight Reduction
[Landreneau & Schaefer 2009]
Bounded Biharmonic Weights (BBW)
[Jacobson et al. 2011]
12 • Gonz´alez Garc´ıa, F. et al.
Fig. 16. Deformations of the Sintel model (66845 triangles) using *Cages. Left: Cages at binding time with differen
Red - HC, and pink cage boundaries). Right: Composition of different poses.
Fig. 15. Deformation involving interior points of the ”Easter Egg” model
using *Cages. Left: The model and the grid of cages at binding time. High-
lighted vertices are interior points. Right: Composition of two different de-
formations.
Sintel model (column 2). The total time required for the preprocess
is shown in column 3, specifying the amount of time dedicated
to compute the coordinates with respect to the parent cages.
Also, *Cages takes much less time to compute cage coordinates
because each of the cages used are simpler and smaller than a
whole single cage. The rest of the time is needed to compute join
cages and the coordinates with respect to them. In the case of
using GC, *Cages requires even less preprocessing time because
of the nature of their computations [Lipman et al. 2008]. The
deformation times (column 4) are the averages of the times needed
for the deformation of a cage vertex. Observe that our approach is
significantly faster for both models, where we achieve between 3
and 5 times the speed of MVC, and between 7 and 18 times that of
GC.
We would like to emphasize that, even our code is unopti-
mized and CPU-based, *Cages allows for a more GPU-friendly
implementation than single cage-based approaches do, as it has
a much lower number of weights to store for each mesh vertex.
Moreover, unlike the technique presented by Landreneau and
Schaefer [2010], we don’t need to be constrained by having to
of predetermined poses to be
consumption. Instead, we giv
any type of deformation wh
time requirements small, as
fully compatible with the w
[2010], and our computation
even more if used together:
for both cage and join trans
benefit *Cages the most, as jo
tationally demanding to evalua
*Cages is not related with
As the examples throughout th
individual cages, the union of
entire model. This has been d
to previous single cage-based
don’t need to create the whole
single cage. For instance, if w
the Sintel model shown in Fig
all the cages shown there, we o
to make this task simpler. More
deform a small region is usua
of many cages to deform a mes
element for the cage-modeling
As a space deformation app
same domains as previous met
cages of our hierarchy could b
Ju at al. [2008] did. Thanks to
we could provide a finer degre
as a result, a smoother final an
to perform deformations in 2D
requirements described in Se
method that can be also integ
niques that uses other types o
Jacobson et al. [2011]. For ins
a certain region of the model
deformations with MVC/HC or
the bounded biharmonic weig
*Cages
[García et al. 2013]
1. Flexibility & Speed
2. Hierarchy set of Cages
18. Previous Work
18
Schaefer / Poisson-based Weight Reduction of Animated Meshes
) is stretched
(middle) and
onds to vertex
exhibits some
odel is locally
ing relatively
echniques are
h is weighted
rol mesh. As
s, the storage
esh’s vertices
ontrol meshes
tions may be
any deforma-
will influence
moves a sin-
ertices on the
ch movement
ulated figures
ody part to be
Figure 3: An example of our weight reduction applied to a
model of Buddha in the rest pose (left) and deformed poses
(right). The model was reduced from 45 weights down to 12
weights using our Poisson reduction and is indistinguishable
from the original model.
ber of weights to maximize computational efficiency. Fig-
ure 3 demonstrates the type of reduction possible with our
method. In this example each vertex of the Buddha model is
weighted by all 45 vertices of the control mesh. After weight
reduction, each vertex has a maximum of 12 weights and the
model is virtually identical to the original under deforma-
tion.
1.1. Contributions
We present a Poisson-based optimization technique that re-
duces the number of control point influences of a deformable
mesh to a specified count. To expose the limited degrees of
freedom in the model we require the user to specify a num-
ber of example poses demonstrating the set of plausible de-
formations of the character. From these examples we show
that we can maintain the appearance of the surface under
deformation and provide an iterative optimization technique
Poisson-based Weight Reduction
[Landreneau & Schaefer 2009]
Bounded Biharmonic Weights (BBW)
[Jacobson et al. 2011]
12 • Gonz´alez Garc´ıa, F. et al.
Fig. 16. Deformations of the Sintel model (66845 triangles) using *Cages. Left: Cages at binding time with differen
Red - HC, and pink cage boundaries). Right: Composition of different poses.
Fig. 15. Deformation involving interior points of the ”Easter Egg” model
using *Cages. Left: The model and the grid of cages at binding time. High-
lighted vertices are interior points. Right: Composition of two different de-
formations.
Sintel model (column 2). The total time required for the preprocess
is shown in column 3, specifying the amount of time dedicated
to compute the coordinates with respect to the parent cages.
Also, *Cages takes much less time to compute cage coordinates
because each of the cages used are simpler and smaller than a
whole single cage. The rest of the time is needed to compute join
cages and the coordinates with respect to them. In the case of
using GC, *Cages requires even less preprocessing time because
of the nature of their computations [Lipman et al. 2008]. The
deformation times (column 4) are the averages of the times needed
for the deformation of a cage vertex. Observe that our approach is
significantly faster for both models, where we achieve between 3
and 5 times the speed of MVC, and between 7 and 18 times that of
GC.
We would like to emphasize that, even our code is unopti-
mized and CPU-based, *Cages allows for a more GPU-friendly
implementation than single cage-based approaches do, as it has
a much lower number of weights to store for each mesh vertex.
Moreover, unlike the technique presented by Landreneau and
Schaefer [2010], we don’t need to be constrained by having to
of predetermined poses to be
consumption. Instead, we giv
any type of deformation wh
time requirements small, as
fully compatible with the w
[2010], and our computation
even more if used together:
for both cage and join trans
benefit *Cages the most, as jo
tationally demanding to evalua
*Cages is not related with
As the examples throughout th
individual cages, the union of
entire model. This has been d
to previous single cage-based
don’t need to create the whole
single cage. For instance, if w
the Sintel model shown in Fig
all the cages shown there, we o
to make this task simpler. More
deform a small region is usua
of many cages to deform a mes
element for the cage-modeling
As a space deformation app
same domains as previous met
cages of our hierarchy could b
Ju at al. [2008] did. Thanks to
we could provide a finer degre
as a result, a smoother final an
to perform deformations in 2D
requirements described in Se
method that can be also integ
niques that uses other types o
Jacobson et al. [2011]. For ins
a certain region of the model
deformations with MVC/HC or
the bounded biharmonic weig
*Cages
[García et al. 2013]
1. Generate local and smooth control
weighting function for real-time
deformation
2. But function doesn’t satisfy all the
properties of Barycentric Coordinate
19. Previous Work
19
Schaefer / Poisson-based Weight Reduction of Animated Meshes
) is stretched
(middle) and
onds to vertex
exhibits some
odel is locally
ing relatively
echniques are
h is weighted
rol mesh. As
s, the storage
esh’s vertices
ontrol meshes
tions may be
any deforma-
will influence
moves a sin-
ertices on the
ch movement
ulated figures
ody part to be
Figure 3: An example of our weight reduction applied to a
model of Buddha in the rest pose (left) and deformed poses
(right). The model was reduced from 45 weights down to 12
weights using our Poisson reduction and is indistinguishable
from the original model.
ber of weights to maximize computational efficiency. Fig-
ure 3 demonstrates the type of reduction possible with our
method. In this example each vertex of the Buddha model is
weighted by all 45 vertices of the control mesh. After weight
reduction, each vertex has a maximum of 12 weights and the
model is virtually identical to the original under deforma-
tion.
1.1. Contributions
We present a Poisson-based optimization technique that re-
duces the number of control point influences of a deformable
mesh to a specified count. To expose the limited degrees of
freedom in the model we require the user to specify a num-
ber of example poses demonstrating the set of plausible de-
formations of the character. From these examples we show
that we can maintain the appearance of the surface under
deformation and provide an iterative optimization technique
Poisson-based Weight Reduction
[Landreneau & Schaefer 2009]
Bounded Biharmonic Weights (BBW)
[Jacobson et al. 2011]
12 • Gonz´alez Garc´ıa, F. et al.
Fig. 16. Deformations of the Sintel model (66845 triangles) using *Cages. Left: Cages at binding time with differen
Red - HC, and pink cage boundaries). Right: Composition of different poses.
Fig. 15. Deformation involving interior points of the ”Easter Egg” model
using *Cages. Left: The model and the grid of cages at binding time. High-
lighted vertices are interior points. Right: Composition of two different de-
formations.
Sintel model (column 2). The total time required for the preprocess
is shown in column 3, specifying the amount of time dedicated
to compute the coordinates with respect to the parent cages.
Also, *Cages takes much less time to compute cage coordinates
because each of the cages used are simpler and smaller than a
whole single cage. The rest of the time is needed to compute join
cages and the coordinates with respect to them. In the case of
using GC, *Cages requires even less preprocessing time because
of the nature of their computations [Lipman et al. 2008]. The
deformation times (column 4) are the averages of the times needed
for the deformation of a cage vertex. Observe that our approach is
significantly faster for both models, where we achieve between 3
and 5 times the speed of MVC, and between 7 and 18 times that of
GC.
We would like to emphasize that, even our code is unopti-
mized and CPU-based, *Cages allows for a more GPU-friendly
implementation than single cage-based approaches do, as it has
a much lower number of weights to store for each mesh vertex.
Moreover, unlike the technique presented by Landreneau and
Schaefer [2010], we don’t need to be constrained by having to
of predetermined poses to be
consumption. Instead, we giv
any type of deformation wh
time requirements small, as
fully compatible with the w
[2010], and our computation
even more if used together:
for both cage and join trans
benefit *Cages the most, as jo
tationally demanding to evalua
*Cages is not related with
As the examples throughout th
individual cages, the union of
entire model. This has been d
to previous single cage-based
don’t need to create the whole
single cage. For instance, if w
the Sintel model shown in Fig
all the cages shown there, we o
to make this task simpler. More
deform a small region is usua
of many cages to deform a mes
element for the cage-modeling
As a space deformation app
same domains as previous met
cages of our hierarchy could b
Ju at al. [2008] did. Thanks to
we could provide a finer degre
as a result, a smoother final an
to perform deformations in 2D
requirements described in Se
method that can be also integ
niques that uses other types o
Jacobson et al. [2011]. For ins
a certain region of the model
deformations with MVC/HC or
the bounded biharmonic weig
*Cages
[García et al. 2013]
1. Usability
2. Locality
3. Memory consumption & Time
4. Smoothness
5. Coordinate Selection
21. Problem Formulation
21
• Input: control cage with vertices
• Output: barycentric coordinate functions
with local influence
{ci}
c1
c2
c3 c4
c5
{wi(x)}
22. • subject to some constraints:
–
–
–
– linear on cage edges
Optimization Approach
22
min
w1,...,wn
F(w1, . . . , wn)
Xn
i=1
wi(x) ci = x,
Xn
i=1
wi(x) = 1, 8 x
wi 0
wi(cj) =
⇢
1, if i = j
0, otherwise
wi
23. • subject to some constraints:
–
–
–
– linear on cage edges
Optimization Approach
23
min
w1,...,wn
F(w1, . . . , wn)
Xn
i=1
wi(x) ci = x,
Xn
i=1
wi(x) = 1, 8 x
wi 0
wi(cj) =
⇢
1, if i = j
0, otherwise
wi
24. • subject to some constraints:
–
–
–
– linear on cage edges
Optimization Approach
24
min
w1,...,wn
F(w1, . . . , wn)
Xn
i=1
wi(x) ci = x,
Xn
i=1
wi(x) = 1, 8 x
wi 0
wi(cj) =
⇢
1, if i = j
0, otherwise
wi
25. • subject to some constraints:
–
–
–
– linear on cage edges
Optimization Approach
25
min
w1,...,wn
F(w1, . . . , wn)
Xn
i=1
wi(x) ci = x,
Xn
i=1
wi(x) = 1, 8 x
wi 0
wi(cj) =
⇢
1, if i = j
0, otherwise
wi
26. • subject to some constraints:
Optimization Approach
26
min
w1,...,wn
F(w1, . . . , wn)
Convex functional inducing locality
28. Condition for the Gradient
28
rwi = 0
• Function for control vertexwi ci
29. Condition for the Gradient
29
Necessary condition: large region with zero gradient
rwi = 0
30. Condition for the Gradient
30
min
Z
|rwi(x)| dx
rwi = 0
Necessary condition: large region with zero gradient
31. Condition for the Gradient
31
min
Z
|rwi(x)| dx
Total variation of :
convex functional
wi rwi = 0
Necessary condition: large region with zero gradient
32. Condition for the Gradient
32
F =
nX
i=1
Z
|rwi(x)| dx
rwi = 0
Target functional: