CS 779 Course Description | SCS | UW

[Please remove <h1>]



Objectives

Computer-aided design systems originally offered only simple primitives (spheres, cylinders, polytopes, etc.) as building blocks for the creation of composite objects. Now such systems provide spline primitives as well for the construction of free form curves and surfaces. In addition, splines provide an important class of functions for approximation in areas such as finite element methods and numerical data fitting.

This course presents a general introduction to spline theory and recent developments in techniques for representing, manipulating and rendering curves and surfaces constructed from splines in a graphics environment. Applications of interest include computer-aided design, synthetic image generation and animation.

References

An Introduction to Splines for Use in Computer Graphics and Computer-Aided Design, by R. Bartels, J. Beatty and B. Barsky; A Practical Guide to Splines, by C. de Boor, Springer-Verlag; Curves and Surfaces for Computer Aided Geometric Design, by G. Farin, Academic Press; Fundamentals of Computer Aided Geometric Design, by J. Hoschek and D. Lasser; Computer Graphics, by D. Hearn and M.P. Baker and relevant journal articles.

Outline

Mathematical Background

A review of linear and affine spaces. Introduction to polynomials, polynomial bases, multi-linear and multi-affine functions. The mathematical description of curves and surface as parametric mappings.

Bezier and B-Spline Curves

Piecewise polynomials. Conditions of mathematical continuity. Bernstein poly-nomials and B-spline basis functions. The properties of nonnegativity, compact support, variation diminishing, partition of unity. Evaluation algorithms: de Casteljau, de Boor, and forward differencing.

Modification and Design

Degree raising, knot insertion, degree reduction, and knot removal. Sweeps, extrusions, revolutions, and hierarchies. Manipulation methods.

Surfaces

Tensor-products, triangular-patches, and geometric continuity. Interpolation, approximation, and network filling. Tessellation and ray tracing.