# Hierarchical B-splines

For the purposes of this section, a spline is a smooth free-form surface defined by a set of points in space called control vertices.

A traditional B-spline surface has a number of drawbacks that arise from the mathematical properties of the B-spline basis functions. (For further information on hierarchical B-splines see the tutorial) First: only an entire row or an entire column of patches can be split, thus to add more patches to a particular region requires the addition of patches across the entire surface. The figure below shows the "worst-case" scenario, a flat surface with a series of diagonal bumps across the surface. This surface would require 1024 control vertices to represent as a traditional B-spline.

```   Download 2)
```
A hierarchical B-spline allows local refinement of the surface, as shown in the figure below: patch are added only to the region around the bumps. The hierarchical formulation needs only 24 (yes twenty-four) control vertices to represent this shape. (For more details about storage costs) The image below shows the outline of patches illustrating local refinement.
```   Download 3)
```
Second: After patches have been added the local refinement property of the B-splines makes it difficult to change the overall shape of the surface without resorting to deformations (such as a free-form deformation) that distort the surface without regard to the surface geometry.

A hierarchical B-splines surface provides local refinement and the ability to change the overall shape of the surface without having to re-edit (or re-animate in the case of animated surfaces) the details on that surface. Figures 4 & 5 demonstrate this basic property:

```   Download 4)   Download 5)
```

4a) a simple hierarchical b-spline surface with a number of surface details.

4b) shows the orientation of these same bumps with respect to the underlying plane.

4c-d) show the same surface edited by altering a single control vertex within 2x2 patch level of the hierarchical surface representation. Notice how the bumps have changed their orientation so that they follow the change in shape of the underlying surface.

5e) the surface is again altered using a single control vertex, this time at the 4x4 patch level. The details continue to follow the basic shape.

5f) the bumps are further modified to add more detail to the shape

5g-h) the broad-scale deformations applied to the surface are undone, showing that the detail added in 5(f) are retained.

A hierarchical B-splines surface is created by repeated application of local refinement of an initial B-spline surface (either a plane, cylinder or torus). The dragon head below was constructed from a torus. The figures below show the 8 levels in the hierarchy, starting from that original toroidal shape.

```   Download 6)    Download 7)
```
6) Images showing 8 levels in the hierarchical B-spline

7) model of a dragon head.

```   Download 8)    Download 9)     Download 10)
```
8) RGB image of entire dragon, head, body and wings The different colours indicate patches with different parametric knot spacing.

9-10) The multiple levels of the hierarchy for the entire dragon. A body was created separately from the head (shown above) and then pasted together.

```   Download 11)    Download 12)
```
11) Hierarchical B-spline model of a human head.

12) The head model showing levels 0, 1, 2 and 4 of the hierarchical B-spline representation.

```   Download 13)     Download 14)
```
13-14) The dragon is animated by moving an underlying skeleton to which the "skin" is attached. These two images are frames from an animated sequence using the dragon head. Because surface details follow the change in shape of the surface, details like the dewlap under the dragon's chin do not have to be specifically animated.

Last updated by David Forsey on 1 Feb. 95.