Boundaries of Trivariate Solids
Ken Joy, and Mark A. Duchaineau
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.
- Ken Joy, Mark A. Duchaineau, Boundry Determination for Trivariate Solids, in: Proceedings of the 1999 Pacific Graphics Conference, pp. 82--91, 1999.