Advanced
A Sweep Surface Based on Bivariate B-spline Motion
A Sweep Surface Based on Bivariate B-spline Motion
KSII Transactions on Internet and Information Systems (TIIS). 2014. Mar, 8(3): 1026-1039
Copyright © 2014, Korean Society For Internet Information
  • Received : December 05, 2013
  • Accepted : February 24, 2014
  • Published : March 28, 2014
Download
PDF
e-PUB
PubReader
PPT
Export by style
Share
Article
Author
Metrics
Cited by
TagCloud
About the Authors
Seung-Hyun Yoon

Abstract
We present a new method for generating sweep surfaces using bivariate B-spline motion. The sweep surface is defined as the trace of a single point under bivariate B-spline 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 three-dimensional shapes.
Keywords
1. Introduction
S weep surfaces and swept volumes are widely used in geometric modeling, computer-aided 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 one-parameter family of motions M ( v )∈ R 4×4 which describes the position, orientation and scaling of a local coordinate system in three-dimensional space. If each component M ( v ) can be represented by a B-spline curve, then M ( v ) is called a rational B-spline motion [4 , 5] . A sweep surface generated by a rational B-spline motion M ( v ) can be expressed as follows:
PPT Slide
Lager Image
where C ( u ) is a cross-sectional 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 three-dimensional 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 time-consuming for freeform surfaces since lots of control points should carefully be positioned.
PPT Slide
Lager Image
Various sweep surfaces based on one-parameter motion M(v) : (a) a teapot model is constructed from three sweep surfaces generated by a circle C(u) under M(v) , (b) the iso-parametric 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 cross-sectional surface Cv(u) under M(v).
However, a sweep surface has some restrictions on cross-sectional shapes. In the simplest case, each iso-parametric 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 cross-sectional surfaces Cv ( u ), which represent different cross-sectional 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 cross-sectional object with increased parametric dimension [4 , 6] .
In this paper, we reformulate the traditional sweep surface by extending the rational B-spline motion M ( v ) to a bivariate motion M ( u , v ), while simplifying the cross-sectional curve C ( u ) or surface Cv ( 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 cross-sectional surfaceCv(u) under a one-parameter 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 cross-sectional 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 B-spline 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 B-spline 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 B-spline) representation. Chang et al. [4] further extended this technique to generalized cylinders, and proposed a technique for manipulating their shapes directly using a target-tracking method based on nonlinear inversion [8] .
In sweep-based 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 B-spline 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 cross-section, and applied it to the construction of sweep surfaces. In general a sweep surface generated by a B-spline motion requires a relatively high degree. To reduce the degree of a B-spline 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 three-dimensional 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 sweep-based method with a local surface-based 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 three-dimensional objects and Park et al. [17] presented a real-time 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 )=( tx ( v ), ty ( v ), tz ( v ), tw ( v )) be a NURBS curve which describes a trajectory in three-dimensional space. The corresponding affine transformation can be represented by a 4×4 matrix T ( v ) in a homogeneous coordinate system as follows:
PPT Slide
Lager Image
In describing a one-parameter motion, a rotation curve r ( v )=( rw ( v ), rx ( v ), ry ( v ), rz ( 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:
PPT Slide
Lager Image
where each component of r ( u , v ) is a B-spline 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:
PPT Slide
Lager Image
where
PPT Slide
Lager Image
PPT Slide
Lager Image
and
PPT Slide
Lager Image
Similarly, a scaling surface with two parameters s ( u , v )=( sx ( u , v ), sy ( u , v ), sz ( u , v ), sw ( u , v )) can be defined, and the corresponding 4×4 matrix S ( u , v ) is
PPT Slide
Lager Image
Finally, the bivariate motion M ( u , v ) can be defined as follows:
PPT Slide
Lager Image
Since all the elements of M ( u , v ) are products of B-spline functions, M ( u , v ) can be represented as follows:
PPT Slide
Lager Image
where Aij are control matrices and
PPT Slide
Lager Image
and
PPT Slide
Lager Image
are the B-spline 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:
PPT Slide
Lager Image
PPT Slide
Lager Image
Bivariate motion: (a) the local coordinate system M(0,v0) for the parameters (0,v0); and (b) the continuous local coordinate system M(u,v0), for 0≤u≤1.
where p =[ px py pz 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 cross-sectional shapes depending on the parameter v , which is equivalent to the result of sweeping cross-sectional surfaces Cv ( u ) under one-parameter motion M ( v ).
PPT Slide
Lager Image
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 iso-parametric curves in u direction.
4. Direct Manipulation
A curve, surface or solid can be used to generate a sweep surface using a one-parameter 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
PPT Slide
Lager Image
. The specified displacement
PPT Slide
Lager Image
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.
PPT Slide
Lager Image
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:
PPT Slide
Lager Image
PPT Slide
Lager Image
Rotation and scaling components of an edited displacement.
where
PPT Slide
Lager Image
(shown in green in Fig. 5 ) is the axis of rotation, which is the normalized cross-product of p - t ( v 0 ) and
PPT Slide
Lager Image
and θ is the angle between these vectors. Fig. 5 shows how
PPT Slide
Lager Image
and θ are derived from p and
PPT Slide
Lager Image
.
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
PPT Slide
Lager Image
(shown in red in Fig. 5 ) of q is obtained by rotating the selected local coordinate q by Δ q as follows:
PPT Slide
Lager Image
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:
PPT Slide
Lager Image
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
PPT Slide
Lager Image
. Fig. 4 (c) shows the specified displacement and Fig. 4 (d) shows the result of editing a sweep surface using this technique, where the iso-parametric 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
PPT Slide
Lager Image
. For completeness, we compute a scaling
PPT Slide
Lager Image
(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
PPT Slide
Lager Image
, as shown in Fig. 4 (e). Alternatively, we can compute translation
PPT Slide
Lager Image
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).
PPT Slide
Lager Image
Results of editing sweep surfaces based on two-parameter motions.
PPT Slide
Lager Image
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 B-spline functions. In general M ( u , v ) has degree dt +2× dr + ds for u and v directions, where dt , dr and ds 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 three-dimensional 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).
PPT Slide
Lager Image
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 three-dimensional shapes, and our technique shows a real-time performance for all models.
PPT Slide
Lager Image
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 user-specified displacement is interpreted as changes to several components of the motion, and these linkages determine how the sweep surface is edited. We constructed various three-dimensional 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 multi-resolution representations and to investigate multi-resolution editing of sweep surfaces. We are also planning to reduce the degree of a sweep surface for obtaining its compact representation.
BIO
Seung-Hyun 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.
References
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 B-spline 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 B-spline motions” ASME Journal of Mechanical Design Article (CrossRef Link). 118 (2) 193 - 201    DOI : 10.1115/1.2826869
Yoon S.-H. , Kim M.-S. 2006 “Sweep-based freeform deformations” Computer Graphics Forum Article (CrossRef Link). 25 (3) 487 - 496    DOI : 10.1111/j.1467-8659.2006.00968.x
Johnstone J. , Williams J. 1995 “A rational model of the surface swept by a curve” Computer Graphics Forum Article (CrossRef Link). 14 (3) 77 - 88    DOI : 10.1111/j.1467-8659.1995.cgf143_0077.x
Kyung M.-H. , Kim M.-S. , Hong S.-J. 1996 “A new approach to through-the-lens 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” Computer-Aided Design 26 (8) 607 - 613    DOI : 10.1016/0010-4485(94)90103-1
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 “Sweep-based human deformation” The Visual Computer Article (CrossRef Link). 21 (8-10) 542 - 550    DOI : 10.1007/s00371-005-0343-x
Lee J. , Yoon S.-H. , Kim M.-S. 2006 “Realistic human hand deformation” Computer Animation and Virtual Worlds Article (CrossRef Link). 17 (3-4) 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 (3-4) 317 - 325    DOI : 10.1002/cav.1510
Elber G. 2001 “Multi-resolution 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