Surface Dragging
After putting clothes on the body, the user can adjust the
placement of the clothes using surface dragging . The user
clicks and drags the clothes using the right mouse button.
This operation is superficially the same as the typical
dragging operations in interactive real-time cloth-simulation
systems .
In typical cloth-simulation systems [8], a user’s dragging
operation applies a force to a single vertex, and the system
simulates the consequent forces on the rest of the cloth to
create a larger-scale effect. This approach (which we call
vertex dragging) is useful for adjusting very local cloth
shape, but is inconvenient for more global cloth
manipulations such as revolving a skirt around a body or
pulling the sleeve upwards (see Figure 6). Single vertex
dragging induces large deformations near the vertex, since
other vertices resist the motion because of the friction
against the body. In addition, vertex dragging can only pull
the cloth and cannot push it – if the user tries to push the
cloth, flips and folds result near the vertex. Finally, vertex
dragging is often implemented as an unconstrained 3D
movement and is therefore difficult to control with 2D input
devices. Some commercial systems allow the simultaneous
modification of multiple points, possibly with an
attenuation factor to ease out the deformation, but these
vertices are all moved in the same direction in 3D space and
so it is still cumbersome to move clothing along the body
surface.
Figure 6: Limitations of conventional vertex dragging: it
causes large stretch and folds instead of the desired
upward slide or horizontal rotation of the entire cloth.
Our surface-dragging operation explicitly propagates the
user’s input motion across the clothes along the body
surface to create a global effect. For example, if the user
drags a vertex upwards, the system explicitly moves the
surrounding cloth vertices upwards at the same time, and if
the user drags the front side of a skirt to the right, surface
dragging actually rotates the skirt horizontally around the
body (Figure 7). Just as in wrapping, we apply a relaxation
step after each dragging step to maintain the basic cloth
constraints.
Figure 7: Various dragging approaches: vertex
dragging (left), rigid dragging (center), surface dragging
(right).
Surface dragging is constrained to directions parallel to
the associated body surface and the user cannot pull the
clothes away from the body1
. The mouse cursor is projected
onto the tangent plane to the body surface at the clickpoint.
This makes dragging with a 2D input device much simpler
and easier than completely free 3D motion. This constraint
caused us no practical problems during typical operations
(Figure 8).
Figure 8: Surface dragging. The third example uses two
pushpins on the back to block propagation. All
examples run at a few frames persecond.