Abstract
The trivariate tensor-product B-spline solid is a direct extension
of the B-spline patch and has been shown to be useful in the
creation and visualization of free-form geometric solids. Visualizing
these solid objects is difficult, because it requires the determination
of the boundary surface of the solid, which is a combination
of parametric and implicit surfaces. We have developed a method
that determines the implicit boundary surface by examination
of the Jacobian determinant of the defining B-spline function.
Using an approximation to this determinant, the domain space
is adaptively subdivided until a mesh can be determined such
that the boundary surface is close to linear in the cells of
the mesh. A variation of an isosurface algorithm is then used
to draw the surface. Interval approximation techniques are used
to approximate the Jacobian determinant and to approximate the
Jacobian determinant gradient for use in the adaptive subdivision
methods.
To see this problem, look at the surface below.
This surface was generated by sweeping a half-cylinder along
a linear path. The half-cylinder is represented by a B-spline
patch. If we just look at the boundaries of the solid that correspond
to the boundaries of the domain space, we obtain the object in
the left-hand picture. The correct object, in the right hand
picture can only be obtained by considering the zero isosurface
of the Jacobian determinant of the defining function of the trivariate
solid.
We are given a trivariate function P(u,v,w) in
B-spline form. The Jacobian of this function can be written as
a triple scalar product dot(Du, cross (Dv X Dw)),
and this can be written and analyzed by using cone approximations
(see the title picture of this project). Thus by subdividing
this trivariate B-spline solid and analyzing the cones to see
if the Jacobian can be zero in a region, we can isolate regions
of the domain where the Jacobian is zero. We can then find this
zero isosurface using standard visualization techniques. Using
cones to approximate the vectors allows us to obtain error estimates
on our approximations.
The following pictures show the results of the algorithm.
Here we have swept our half-cylinder along a linear curve
and rotated the cylinder as it progresses along the curve. The
picture on the left show the resulting object when only considering
the boundaries of the domain space, and the picture on the right
shows the full solid.
Here, we have swept a "funnel shaped" object along
a semi-circular path. The solid on the right is a "high-error"
approximation to the trivariate solid.
Publications
Contact
Ken Joy
Download
A pdf copy of this paper can be found here.