Points, Nets, Patches...

It is evident that 3D models of smooth objects could be "compressed" by splines. But it is not evident, how to use splines efficiently for models with complex topology.

NURBS patches

We have seen, that the NURBS patch can be very copmlex and it stores regular net of (n x m) control points very efficiently. Trimmed NURBS patches are used to represent surfaces with holes. A traditional B-spline surface has one more drawback, as only an entire row or an entire column of the patch can be split, thus to add more points to a particular region requires the addition of points across the entire surface. Hierarchical B-splines allow local refinement of surfaces. But I think a "gluing" tool which combines NURBS patches C1 smoothly could be very useful too. As one can glue a complex patch with holes and different accuracy of several standard NURBS patches. Therefore it is important to study how to glue spline patches.
extrapolatinginterpolating
"Art of Illusion" (Peter Eastman free Java-base 3D Modeller with open source) supports quadratic B-spline meshes (as "extrapolating" splines) and something very similar to Cardinal spline nets (as "interpolating" splines). Plugin for export of 3D spline-meshes into "spline-extended" VRML can be made easy. As the modeller has the open source, one can implement any splines and tools (e.g. "gluing") too.

"Hash" spline patches

vasemeshes "Hash" spline patches allow you to build complex, organic shapes and animations using spline curves. These patches are used in commercial "Animated Master" 3D Modeller by Martin D. Hash (see also A complete algorithm for real-time spline-based character animation).

The same spline patches are used in "sPatch" (Ver 1.5, Copyright 1996-1998 by Mike Clifton) and "HamaPatch" free spline-based modelling tools for Windows95 and NT.


Horse grid hook
"sPatch" uses meshes made only of 3 or 4 spline segments. But "Animated Master" spline engine can use hooks and 5-splines patches too. Therefore when I try to export some of Eggington productions models, I get "broken horse". You see the 5-splines hole in the figure. Moreover as "sPatch" uses (IMHO) degenerate 3-splines patches, we get folded defects for these patches too in the left picture and when I try to repair the 5-splines hole by one more line (i.e. if I make 4-splines and 3-splines patches). I hope hooks and 5-splines patches can be implemented in "HamaPatch" too.

Triangular patches

spline tetrahedron All verteses can be stored as an array, then indexed face set (IFS) of triangular spline patches (and barycentric coordinates) can be used to represent an object. The VRML viewer "Cortona" supports "SplineFaceSet" VRML extension node similar to the standard IFS. "The method of spline representation of geometry objects is based on three-cubic spline interpolation, using incoming polygonal data (control vertices)." See "spline tetrahedron" and "spline cube" demos. But I don't know how to combine these patches C1 smoothly and if there is a handy method to build all the heap of points in an authoring tool. Are triangular patches useful for scanned objects?

Contents   Previous: Tensor product spline surfaces
updated 26 August 2001