Analytical solutions for sketch-based convolution surface modeling on the GPU 1117
used in the sketch-based ShapeShop [23, 24] system. As a
skeleton-based modeling tool [5], convolution surfaces were
naturally introduced into sketch-based modeling [27]. The
sketch-based system in [1] extracts the point skeletons of the
sketched outlines, and then utilizes spherical implicit func-
tions to construct the blobby 3D models. In order to model
complex objects such as cylindrical and planar surfaces, too
many point-skeletons are needed to avoid bumps. Cylindri-
cal surfaces can be easily modeled using line skeletons [2,
4, 27], as convolution solutions for line skeletons can be ob-
tained analytically [12–14, 26]. The triangle skeletons are
also adopted by the system in [2] to construct the palm com-
ponent of a hand model where an extracted polygon has to
be triangulated in order to allow for the evaluation of its field
values.
3 Field value calculation for planar polygon skeletons
In this section, after giving a brief introduction to convolu-
tion surfaces, we deduce analytical solutions for planar poly-
gon skeletons with different kernels using a curve integral
method. Our approach allows us to efficiently evaluate the
field value at any point analytically.
3.1 Convolution surfaces
A convolution surface is an iso-surface defined in an im-
plicit scalar field whose values are evaluated by accumulat-
ing contributions from 3D points of a skeleton. The con-
tribution usually decreases rapidly when the distance be-
tween a point in space and a skeleton is increased. Here, we
adopt the convolution surface definition by McCormack and
Sherstyuk [22]. Let p(x,y,z) be a space point in
3
, and
g :
3
→be a geometric function representing a model-
ing skeleton V :
g(p) =
1, p ∈ skeleton V
0, otherwise
. (1)
Let f :
3
→be a potential function which defines the
field with a single point in the skeleton V , and let q be
a point in V . Then the total field value contributed by the
skeleton at point p is the convolution of functions f and g:
F(p) =
V
g(q)f (p −q)dV =(f ⊗g)(p). (2)
f is also called the convolution kernel function. Theoret-
ically, any geometric primitive can be used as a skeleton.
However, closed-form solutions depend on both the kernel
and the skeleton.
3.2 Curve integral for planar polygon skeletons
Let K(v
0
v
1
v
2
···v
n
v
0
) be a planar polygon skeleton, the
field value at a point p for this skeleton is computed by a
double integral according to (2). For a kernel function with
infinite support, the integration is evaluated on the entire
polygon. However, for a finite support kernel function, the
valid skeletons are areas in the clipping sphere centered at
p, as shown in Fig. 1(a). Generally, the intersecting area is a
polygon or multiple polygons whose boundaries consist of
arcs and line segments. It is difficult to perform the integra-
tion on the intersecting area directly. One solution is to de-
compose the polygon into triangle segments and chord seg-
ments, and then evaluate the convolution integral for each
type [15], as shown in Fig. 1(b). However, such a solution is
not suitable for GPU implementation because GPU branch-
ing is usually slow. Here, we present a closed-form solution
by converting the double integral into a curve integral using
Green’s theorem. As the integral computation can be per-
formed for each edge one by one, we can make better use of
the GPU’s enormous floating point computing capacity.
The field value at point p for a planar polygon skeleton
can be computed directly without the polygon triangulation.
With the integration domain D and its boundary l, the field
value at point p is:
F(p) =
D
f(r)dxdy, (3)
where r =p −q denotes the Euclidean distance between
points p and q, q ∈D. This double integral can be computed
Fig. 1 The regions for the
convolution integral. The valid
polygon skeleton for finite
support kernels is shadowed
in (a). Illustration in (b)
triangulates the polygon before
using closed-form convolution
surface solutions for triangle
skeletons. (c) shows our
clipping between a general
polygon and the clipping sphere