We present a new method for generating sweep surfaces using bivariate Bspline motion. The sweep surface is defined as the trace of a single point under bivariate Bspline motion. Direct manipulation of the sweep surface is achieved by controlling its motion components while producing various editing effects. We demonstrate the effectiveness of our technique by modeling and deforming various threedimensional shapes.
1. Introduction
S
weep surfaces and swept volumes are widely used in geometric modeling, computeraided design and computer graphics
[1
,
2
,
3]
. The simplest sweeps produce surfaces of revolution and linear extrusions, and many engineering objects can be represented by Boolean combinations of these surfaces.
A general sweep can be considered as oneparameter family of motions
M
(
v
)∈
R
^{4×4}
which describes the position, orientation and scaling of a local coordinate system in threedimensional space. If each component
M
(
v
) can be represented by a Bspline curve, then
M
(
v
) is called a rational Bspline motion
[4
,
5]
. A sweep surface generated by a rational Bspline motion
M
(
v
) can be expressed as follows:
where
C
(
u
) is a crosssectional curve defined in the local coordinate system.
A sweep surface
x
(
u
,
v
) is controlled by the motion components such as position, rotation and scaling, as well as by the curve
C
(
u
) itself. This facility provides the designer with great conveniences in modeling and deforming a threedimensional object intuitively.
Fig. 1
(a) shows a teapot model which consists of three sweep surfaces obtained from cylindrical sweep surfaces by simply controlling their motion components. This would be extremely tedious and timeconsuming for freeform surfaces since lots of control points should carefully be positioned.
Various sweep surfaces based on oneparameter motion M(v) : (a) a teapot model is constructed from three sweep surfaces generated by a circle C(u) under M(v) , (b) the isoparametric curves in the u direction (shown in blue) are simply instances of a circle with different positions, orientations and scales, (c) and (d) sweep surfaces generated by a variable crosssectional surface C_{v}(u) under M(v).
However, a sweep surface has some restrictions on crosssectional shapes. In the simplest case, each isoparametric curve
x
(
u
,
v
_{0}
) in
u
direction will be a copy of
C
(
u
) at different position, and potentially with a different scale and orientation (see
Fig. 1
(b)). It is definitely possible to use more flexible crosssectional surfaces
C_{v}
(
u
), which represent different crosssectional shapes as the parameter v changes. This allows a wider range of shapes (see
Figs. 1
(c) and (d)), but it becomes more difficult to control the sweep surface because we should consider both of motion components and the crosssectional object with increased parametric dimension
[4
,
6]
.
In this paper, we reformulate the traditional sweep surface by extending the rational Bspline motion
M
(
v
) to a bivariate motion
M
(
u
,
v
), while simplifying the crosssectional curve
C
(
u
) or surface
C_{v}
(
u
) to a single point
p
. A sweep surface
x
(
u
,
v
_{0}
) is now the trace of
p
under the bivariate motion
M
(
u
,
v
) . The advantages of this formulation can be summarized as follows:

The formulation provides the same modeling flexibility as a crosssectional surfaceCv(u) under a oneparameter motionM(v).

Direct manipulation of an arbitrary surface point boils down to controlling a bivariate motionM(u,v), and it is no longer necessary to consider a separate crosssectional curve or surface, which greatly simplifies its mechanism compared to the existing methods[4,6].

A special type of editing such as twisting around an arbitrary surface point can easily be achieved by controlling the rotation surface of a bivariate motionM(u,v)
The rest of this paper is organized as follows. In Section 2 we review some related recent work on sweep surfaces. In Section 3 we introduce the bivariate rational Bspline motion and show how to use it for generating sweep surfaces. We explain how to manipulate our sweep surfaces in Section 4, and some experimental results are presented in Section 5. Finally, we conclude this paper in Section 6.
2. Related Work
Johnstone and Williams
[7]
used motions to construct sweep surfaces, and Juttler and Wagner
[5]
formulated motions from three Bspline curves, each of which determines trajectory, orientation and scaling of a local coordinate system. The resulting surfaces are compatible with commercial modeling systems based on the NURBS (nonuniform rational Bspline) representation. Chang et al.
[4]
further extended this technique to generalized cylinders, and proposed a technique for manipulating their shapes directly using a targettracking method based on nonlinear inversion
[8]
.
In sweepbased modeling, it is necessary to define a local coordinate system on a trajectory curve, and in general this can be supplied by the Frenet frame
[1]
; but Frenet frames flip at inflection points, where the second derivatives of the curve equations vanish. To solve this problem Juttler and Wagner
[5]
used an additional Bspline curve to represent orientations on the trajectory curve and Wang et al.
[9]
introduced an efficient algorithm for computing a sequence of frames on a trajectory which minimize the rotations of the crosssection, and applied it to the construction of sweep surfaces. In general a sweep surface generated by a Bspline motion requires a relatively high degree. To reduce the degree of a Bspline motion while minimizing its distortion, Hyun et al.
[10]
presented an iterative optimization technique based on knot insertion and degree elevation. Rossignac and Vinacua
[11]
measured the quality of an affine motion by its steadiness, which is defined by the inverse of its ARA (average relative acceleration) and proposed the SAM (steady affine morph) algorithm for generating smooth affine motions.
Recently, sweeping has been reinterpreted as a control mechanism for the modification of existing shapes, rather than as a primary shape model. Lazarus et al.
[12]
introduced a technique for threedimensional shape deformation using moving frames on a curve, and Singh and Fiume
[13]
extended this technique to asymmetric shape deformations. Hyun et al.
[14]
proposed a technique for creating and editing the shapes of human arms and legs using ellipsoidal sweeping; and they subsequently extended this technique to the modeling and deformation of a whole body using a sweep blending technique
[15]
. Lee et al.
[16]
showed how to change the shape of a human hand by combining a global sweepbased method with a local surfacebased method. In this way they resolved the problems of controlling local details. Yoon and Kim
[6]
further extended this technique to the freeform deformation of threedimensional objects and Park et al.
[17]
presented a realtime algorithm for realistically deforming 3D human blood vessels using sweep surfaces. These deformations
[6
,
17]
are controlled by the interactions of the sweep surfaces while automatically detecting and avoiding interference among different sweep surfaces under deformation. The technique that we propose in this paper is similar, in as much as it can be used to deform existing objects, as well as to create new shapes.
3. Sweep Surface Based on Bivariate Motion
Let
t
(
v
)=(
t_{x}
(
v
),
t_{y}
(
v
),
t_{z}
(
v
),
t_{w}
(
v
)) be a NURBS curve which describes a trajectory in threedimensional space. The corresponding affine transformation can be represented by a 4×4 matrix
T
(
v
) in a homogeneous coordinate system as follows:
In describing a oneparameter motion, a rotation curve
r
(
v
)=(
r_{w}
(
v
),
r_{x}
(
v
),
r_{y}
(
v
),
r_{z}
(
v
))∈
R
^{4}
can be used to represent unit quaternions
r
(
v
)/∥
r
(
v
)∥ in
S
^{3}
={(
w
,
x
,
z
,
y
∈
R
^{4}

w
^{2}
+
x
^{2}
+
y
^{2}
+
z
^{2}
=1} which specifies the orientations of a local coordinate system on the trajectory curve
t
(
v
). In this paper, we extend this rotation curve to become a rotation surface, as follows:
where each component of
r
(
u
,
v
) is a Bspline function. The affine transformation corresponding to the rotation surface
r
(
u
,
v
) can be represented by the 4×4matrix
R
(
u
,
v
) in a homogeneous coordinate system as follows:
where
and
Similarly, a scaling surface with two parameters
s
(
u
,
v
)=(
s_{x}
(
u
,
v
),
s_{y}
(
u
,
v
),
s_{z}
(
u
,
v
),
s_{w}
(
u
,
v
)) can be defined, and the corresponding 4×4 matrix
S
(
u
,
v
) is
Finally, the bivariate motion
M
(
u
,
v
) can be defined as follows:
Since all the elements of
M
(
u
,
v
) are products of Bspline functions,
M
(
u
,
v
) can be represented as follows:
where
A_{ij}
are control matrices and
and
are the Bspline basis functions of degrees
p
and
q
respectively.
Fig. 2
shows the rotation components of a bivariate motion
M
(
u
,
v
). The position
t
(
v
_{0}
) and orientation
r
(0,
v
_{0}
)/∥
r
(0,
v
_{0}
)∥ of a local coordinate system on the trajectory curve
t
(
v
_{0}
) are shown in
Fig. 2
(a), and the
y
and
z
axes of the local coordinate system
M
(
u
,
v
_{0}
), which are continuously changing over the parametric interval 0≤
u
≤1, are shown in
Fig. 2
(b). A sweep surface can now be generated from the bivariate motion
M
(
u
,
v
) as follows:
Bivariate motion: (a) the local coordinate system M(0,v_{0}) for the parameters (0,v_{0}); and (b) the continuous local coordinate system M(u,v_{0}), for 0≤u≤1.
where
p
=[
p_{x}
p_{y}
p_{z}
1]
^{T}
is a point in a local coordinate system. For example,
Fig. 3
(b) shows the sweep surface generated by the point
p
=[0 0 1 1]
^{T}
on
z
axis under a bivariate motion
M
(
u
,
v
) shown in
Fig. 3
(a). Note that the sweep surface
x
(
u
,
v
) has different crosssectional shapes depending on the parameter
v
, which is equivalent to the result of sweeping crosssectional surfaces
C_{v}
(
u
) under oneparameter motion
M
(
v
).
Creating a sweep surface: (a) a bivariate motion and a point p on the z axis; (b) the resulting sweep surface x(u,v) with different isoparametric curves in u direction.
4. Direct Manipulation
A curve, surface or solid can be used to generate a sweep surface using a oneparameter motion. This arrangement provides lots of ways of editing and manipulating sweeps: by editing the trajectory, rotation or scaling curve, or the object that is being swept. However, the existence of so many possibilities can complicate the provision of an appropriate mechanism of manipulating a sweep surface. In some previous approaches
[4
,
6]
, the edited displacements indicated by the user are interpreted as changes to the motion curves as well as to the object being swept.
Because we simplify the object being swept to a single point, the problem of editing and manipulating the sweep surfaces can be reformulated as one of controlling a bivariate motion. We will now show how this can be done simply and efficiently. We will start by introducing a method of editing each component of the bivariate motion, and then extend this method to produce various editing effects by specifying the way in which edited displacements provided by the user affect each component.
In
Fig. 4
(a), the user selects an arbitrary point
p
=
x
(
u
_{0}
,
v
_{0}
) on a sweep surface and moves it to a new position
. The specified displacement
constitutes a translation Δ
t
which moves a point
t
(
v
_{0}
) on the trajectory curve to the position
t
(
v
_{0}
)+Δ
t
. This translation can be achieved by direct manipulation
[2
,
18]
of the NURBS curve.
Fig. 4
(b) shows the modified sweep surface by manipulating the trajectory curve.
Editing a sweep surface: (a), (c) a point p is selected and displaced by Δp ; (b), (d), (e) and (f) the edited sweep surfaces by controlling different motion components.
Let
q
=
r
(
u
_{0}
,
v
_{0}
)/∥
r
(
u
_{0}
,
v
_{0}
)∥∈
S
^{3}
be a selected orientation of local coordinate system on the trajectory curve
t
(
v
_{0}
). If the sweep surface is generated by the point
p
=[0 0 1 1]
^{T}
on the
z
axis, then
q
will correspond to the blue coordinate system in
Fig. 5
. To derive a rotation Δ
r
∈
R
^{4}
from Δ
p
∈
R
^{3}
, we compute the rotational displacement Δ
q
∈
S
^{3}
as follows:
Rotation and scaling components of an edited displacement.
where
(shown in green in
Fig. 5
) is the axis of rotation, which is the normalized crossproduct of
p

t
(
v
_{0}
) and
and
θ
is the angle between these vectors.
Fig. 5
shows how
and
θ
are derived from
p
and
.
Controlling rotation surface involves more computations. It does not make sense to simply move a point
r
(
u
_{0}
,
v
_{0}
) on rotation surface to the new position
r
(
u
_{0}
,
v
_{0}
)+Δ
q
in
R
^{4}
since Δ
q
S
^{3}
. The new orientation
(shown in red in
Fig. 5
) of
q
is obtained by rotating the selected local coordinate
q
by Δ
q
as follows:
where the dot (·) means the quaternion multiplication. Note that the Δ
q
is computed in the global coordinate system rather than the local coordinate system
q
, and thus it should be multiplied on the left side of
q
. Then, the rotation Δ
r
∈
R
^{4}
can be computed as follows:
where
e
=(1,0,0,0)∈
S
^{3}
is the identity for quaternion multiplication. Finally, we apply NURBS manipulation
[2
,
18]
to the rotation surface
r
u
_{0}
,
v
_{0}
) so that it passes through the new position
r
(
u
_{0}
,
v
_{0}
)+Δ
r
∈
R
^{4}
and acquires desired orientation
.
Fig. 4
(c) shows the specified displacement and
Fig. 4
(d) shows the result of editing a sweep surface using this technique, where the isoparametric curves in the
u
direction depend on
v
. In
Fig. 4
(d), we can see that the surface point
p
moves to the new position
p’
rather than the target position
. For completeness, we compute a scaling
(see
Fig. 5
) and apply NURBS manipulation
[2
,
18]
to the scaling surface
s
(
u
_{0}
,
v
_{0}
) so that it can pass through the point
, as shown in
Fig. 4
(e). Alternatively, we can compute translation
and control the trajectory curve.
Fig. 4
(f) shows a different result of editing a sweep surface using translation Δ
t
. Note that editing the scaling surface influences local regions of the sweep surface, whereas editing the trajectory makes global changes.
In general, a specified displacement Δ
p
can be decomposed into translation, scaling and rotation components, which can be used to edit a sweep surface.
Fig. 5
shows how a displacement Δ
p
is decomposed into a rotation component Δ
r
and a scaling component Δ
s
. As shown in
Fig. 4
(f), the scaling component Δ
s
can be replaced by a translation for producing a different editing effect.
5. Experimental Results
We implemented our technique in C++ on an Intel Core2 Duo 3.06GHz CPU with a 3GB main memory and an NVIDIA GeForce 8800 GS.
Fig. 6
shows a cylindrical sweep surface being edited by controlling the bivariate motion.
Fig. 6
(a) shows the initial sweep surface and the displacement of four points.
Fig. 6
(b) shows a propeller shape created by these displacement, where each blade of the propeller is created by editing the scaling surface
s
(
u
,
v
) .
Fig. 6
(c) shows the further displacement of two points on this propeller model. The rotation surface
r
(
u
,
v
) is changed by the rotations computed from these two displacements, and the new surface is shown in
Fig. 6
(d).
Fig. 6
(e) shows a direct manipulation of the rotation surface
r
(
u
,
v
), with the result in
Fig. 6
(f). Whereas it is quite difficult to twist part of a surface around a particular point using existing techniques
[1
,
2
,
4
,
6]
, our new technique readily provides this functionality by allowing changes to the rotation surface
r
(
u
,
v
) of the bivariate motion. For example,
Fig. 7
shows the advantage of our technique compared to the traditional NURBS representation commonly used in geometric modeling and computer graphics.
Fig. 7
(b) shows a NURBS surface represented by control points and
Fig. 7
(c) show its editing result which is obtained by manually selecting 35 control points and carefully repositioning them, whereas our technique can produce the similar effect by simply manipulating the selected orientation of the surface as shown in
Fig. 7
(a).
Results of editing sweep surfaces based on twoparameter motions.
Comparison to a NURBS model: (a) a sweep surface edited by the direct manipulation of rotation surface, (b) a NURBS surface model, (c) 35 control points are repositioned carefully for producing similar editing effect in (a).
Although our technique provides an intuitive control mechanism for editing sweep surfaces, the bivariate motion
M
(
u
,
v
) in Equation (6) requires a relatively high degree since all the elements of
M
(
u
,
v
) are products of Bspline functions. In general
M
(
u
,
v
) has degree
d_{t}
+2×
d_{r}
+
d_{s}
for u and v directions, where
d_{t}
,
d_{r}
and
d_{s}
are degrees of a trajectory curve, a rotation surface and a scaling surface, respectively. For experimental results, we used cubic trajectory curves, linear rotation surfaces and quadratic scaling surfaces, which resulted in sweep surfaces of degree 7. Some sophisticated techniques
[10
,
11]
can be applied for enhancing the generated sweep surfaces or reducing their degrees as necessary.
Fig. 8
shows the processes of modeling and deformations of a threedimensional fish model. Similar to the propeller model, we start with a cylindrical sweep surface.
Figs. 8
(a)(f) show the intermediate stages of creating a fish model, where the direct manipulation techniques presented in Section 4 are used repeatedly.
Figs. 8
(g)(i) show the results of various deformations of the fish model. These deformations are simply achieved by controlling rotation surface
r
(
u
,
v
) of the bivariate motion, and the textured fish models are shown in
Figs. 8
(j)(l).
Bivariate motion based modeling and deformations: (a)(f) modeling processes of a fish model; (g)(i) deformations by controlling rotation surface; (j)(l) textured fish models.
Similarly,
Fig. 9
shows the result of modeling and deformations of a flower and flowerpot. For all models in experimental result, the whole design process took only a couple of minutes, starting from cylindrical sweep surface and manipulating surface points and motion components to the final threedimensional shapes, and our technique shows a realtime performance for all models.
Bivariate motion based modeling and deformations: (a)(c) modeling processes of a flower; (d)(f) modeling processes of a flowerpot; (g)(i) potted flowers.
5. Conclusion
We have created a bivariate motion by extending the rotation and scaling curves used in standard sweeping techniques to surfaces, and used this technique to generate sweep surfaces. Since our sweep surface is the trace of a single point under a bivariate motion, editing and manipulating the shape of the surface becomes the problem of controlling the bivariate motion.
To solve this problem, we have introduced a simple and intuitive technique in which a userspecified displacement is interpreted as changes to several components of the motion, and these linkages determine how the sweep surface is edited. We constructed various threedimensional models and deforming them to demonstrate our technique, and showed that editing the rotation surface provided an easy way of controlling the sweep surface compared to the popular NURBS surface.
In future work, we plan to extend the motion components to multiresolution representations and to investigate multiresolution editing of sweep surfaces. We are also planning to reduce the degree of a sweep surface for obtaining its compact representation.
BIO
SeungHyun Yoon received the BS degree in mathematics from Hanyang University in 2001 and the PhD degree in computer science and engineering from Seoul National University in 2007. He is currently an associative professor of the Department of Multimedia Engineering, Dongguk University. His research interests are in computer graphics and geometric modeling.
Farin G.
2002
Curves andSurfaces for CAGD
5th Edition
Academic Press 
Piegl L.
,
Tiller W.
1997
The NURBS Book
2nd Edition
Springer 
Salomon D.
2006
Curves and Surfaces for Computer Graphics
Springer
Chang T.I.
,
Lee J.H.
,
Kim M.S.
,
Hong S.J.
1998
“Direct manipulation of generalized cylinders based on Bspline motion”
The Visual Computer
Article (CrossRef Link).
4
(5)
228 
239
DOI : 10.1007/s003710050137
Jüttler B.
,
Wagner M.G.
1996
“Computer aided design with spatial rational Bspline motions”
ASME Journal of Mechanical Design
Article (CrossRef Link).
118
(2)
193 
201
DOI : 10.1115/1.2826869
Kyung M.H.
,
Kim M.S.
,
Hong S.J.
1996
“A new approach to throughthelens camera control”
Graphical Models and Image Processing
Article (CrossRef Link).
58
(3)
262 
285
DOI : 10.1006/gmip.1996.0022
Wang W.
,
Jüttler B.
,
Zheng D.
,
Liu Y.
2008
“Computation of rotation minimizing frames”
ACM Transactions on Graphics
article no. 2, Article (CrossRef Link).
27
(1)
Hyun D.E.
,
Jüttler B.
,
Kim M.S.
2002
“Minimizing the distortion of affine spline motions”
Graphical Models
Article (CrossRef Link).
64
(2)
128 
144
DOI : 10.1006/gmod.2002.0569
Rossignac J.
,
Vinacua A.
2011
“Steady affine motions and morphs”
ACM Transactions on Graphics
article no. 116, Article (CrossRef Link).
30
(5)
DOI : 10.1145/2019627.2019635
Lazarus F.
,
Coquillart S.
,
Coquillart P.
1994
“Axial deformations: an intuitive deformation technique”
ComputerAided Design
26
(8)
607 
613
DOI : 10.1016/00104485(94)901031
Singh K.
,
Fiume E.
1998
“Wires: a geometric deformation technique”
in Proc. of ACM SIGGRAPH
Article (CrossRef Link).
405 
414
Hyun D.E.
,
Yoon S.H.
,
Kim M.S.
,
Jüttler B.
2003
“Modeling and deformation of arms and legs based on ellipsoidal sweeping”
In Proc. of Pacific Graphics
204 
212
Hyun D.E.
,
Yoon S.H.
,
Chang J.W.
,
Seong J.K.
,
Kim M.S.
,
Jüttler B.
2005
“Sweepbased human deformation”
The Visual Computer
Article (CrossRef Link).
21
(810)
542 
550
DOI : 10.1007/s003710050343x
Lee J.
,
Yoon S.H.
,
Kim M.S.
2006
“Realistic human hand deformation”
Computer Animation and Virtual Worlds
Article (CrossRef Link).
17
(34)
479 
489
DOI : 10.1002/cav.150
Park J.
,
Shim M.
,
Park S.Y.
,
Kang Y.
,
Kim M.S.
2013
“Realistic deformation of 3D human blood vessels”
Computer Animation and Virtual Worlds
Article (CrossRef Link).
24
(34)
317 
325
DOI : 10.1002/cav.1510
Elber G.
2001
“Multiresolution curve editing with linear constraints”
The Journal of Computing & Information Science in Engineering
Article (CrossRef Link).
1
(4)
347 
355
DOI : 10.1115/1.1430679