Hierarchical B-Splines
Josh Taylor's CS779 Webpage
The purpose of this project is to implement Hierarchical B-Splines. The use of a Hierarchical B-Splines (HBS) is local refinement, the ability
to manipulate an area on a surface in such a way that you can contain or control the area affected.
A HBS starts as a simple B-Spline Tensor Product Patch. The local refinement property is obtained using overlays, a refined B-Spline Tensor Product Patch. The surfaces are stored relative to one another creating a Hierarchy. |
An overlay on an overlay, note the decreasing patch size
Refinement limits the area of effect of curve manipulations. The more refined a curve is the more local the changes and the sharper the peaks that can be created, as shown in the image below. We start with a (N x N) blank patch (I use 6x6 for simplicity, but the editor can handle any N), Overlays are placed through menu commands and positioned using the keyboard. When an overlay is placed on the desired section of curve, you commit it and its derived coordinates are determined by its parent surface. |
3 peaks at increasing
refinement (sharper peaks are more refined)
Offset referencing is used to prevent tears in the curves and to maintain the hierarchy of overlays. When a curve is edited, all its overlays must move accordingly. In the screen shots below, I created a sharp peak, then I edited the base curve and the peak moved accordingly without a tearing in the surface. Editing is done using control points |
a sharp peak
The peak after editing the root surface
Josh Taylor Graduate Student (SCG) University of Waterloo jktylr@hotmail.com |