Graphics Reference
In-Depth Information
in some way, to the old Laplacians. The first condition can be expressed by
writing
W p V = W p V ,
(25.20)
where W p is a diagonal matrix of weights, which gives us control over which
position constraints are most important to us. Clearly this system can be solved by
letting V = V , but we'll be adding further constraints in a moment.
Inline Exercise 25.12: Since there are n vertex positions v i , each in 3-space,
the matrix V is n
×
3. What size is each of the other matrices in Equation 25.20?
The second condition, on the Laplacian, can be written in the form
W L LV = W L F ,
(25.21)
where again we've included a diagonal weighting matrix W L , and where L is the
matrix of some Laplacian coordinate transform (i.e., the first row of LV is the
Laplacian at vertex v 1 , etc.). The matrix F is a target for the Laplacians. Taken
together, in block matrix form, we'll be solving
c W L L
W p
V = c W L F
W p V
.
(25.22)
Nealen et al. observe that if we set L = L u and F contains the cotangent
Laplacian coordinates of all vertices, the resultant mesh preserves the details of
the original but the shapes of individual triangles are improved. If we set W to
the identity, all vertices are allowed to move equally and the triangle shapes are
slightly improved. If, on the other hand, we set the weight for a vertex to be pro-
portional to the mean curvature at that vertex, then vertices at highly curved points
will remain fixed, while others move. The problem with this is that often there are
a few vertices with very high curvatures, and so if we map curvatures to weights
linearly, only a few vertices get at all constrained. Nealen et al. suggest an alter-
native: They compute
C (
κ
) ,
(25.23)
the fraction of all vertices whose curvatures are no more than
κ
, and assign to each
vertex of curvature
) . The weights are stored in a
matrix W L . The constant of proportionality is a tuning parameter.
The result is a system that manages to improve triangle shape while maintain-
ing the mesh features at high-curvature points.
On the other hand, if we set L = L u and F = 0, then we actually smooth the
mesh, removing some amount of noise from the shape. Nealen et al. discuss other
variants of this approach.
κ
a weight proportional to C (
κ
Inline Exercise 25.13: We have not discussed how to set the positional
weights, W p . Can you think of any points in a typical object (e.g., a video-
game character) for which large weights might be appropriate?
In both the triangle shape optimization and mesh smoothing methods, we need
to solve the system of equations in Equation 25.22. This consists of a 2 n
×
n matrix
 
Search WWH ::




Custom Search