Superquadrics

Andrew Skowronski, Jonathan Feldman

cs557 Project, McGill University

Introduction



Superquadrics are a flexible family of 3-dimensional parametric objects, useful for geometric modeling. By adjusting a relatively few number of parameters, a large variety of shapes may be obtained. A particularly attractive feature of superquadrics is their simple mathematical representation.





Superquadrics can be divided into 4 parametric forms: superellipsoids, one piece superhyperboloids, two piece super hyperboloids, and supertoroids. In [Barr81], Alan Barr derives a set of formulae for the representations, normal vectors, tangent vectors, and inside-outside functions of each of these forms. We took this mathematical definition of superquadrics and implemented C++ classes for drawing superquadrics efficiently in OpenGL. Then, to demonstrate our library we wrote 3 demonstration programs. Using these programs it is possible to get a very good idea about how rich a class of 3D objects the superquadric family defines.







Our project is divided into three main sections: theory, implementation, and applications. The theory section presents and discusses Barr's formulae related to superquadrics. The implementation section discusses our implementation of superquadrics in C++ and OpenGL. The applications section describes a number of uses for superquadrics in academic research.



Contents

References

[Barr81]    Barr, A.H. (1981) Superquadrics and Angle-Preserving 
	    Transformations. IEEE Computer Graphics and Applications,
	    1, 11-22.

[Ferr93]    Ferrie, F.P., Lagarde, J., & Whaite, P. (1993) Darboux Frames, 
	    Snakes, and Super-Quadrics: Geometry from the Bottom Up. 
	    IEEE Transactions on Pattern Analysis and Machine Intelligence 
	    15(8), 771-783.

[Terz91]    Terzopoulos, D. (1991) Dynamic 3D Models with Local and
	    Global Deformations: Deformable Superquadrics. IEEE
	    Transactions on Pattern Analysis and Machine Intelligence, 
	    13(7), 703-714.

Note: All the graphics in this paper were generated by the demonstration programs that we wrote as part of the project.

This project was created by Andrew "Terminator" Skowronski and Jonathan "The Punisher" Feldman .
Last updated on 4/14/96