Lecture #2  for CS 184

Wednesday  3/30, 2005 -- 2:40pm-4:00pm, -- 306 Soda Hall

( PREVIOUS: Spline Lecture #1)

Splines (continued)


Splines are smooth parameterized representations of smooth curves.
We distinguish between:
    -- Interpolating splines (pass through all the data points; example Hermite splines), and
    -- Approximating splines (only come close to data points; example B-Splines).

When making smooth shapes by piecing together smooth curves, consider the
degrees of smoothness at the joints:
    -- Parametric Continuity: differentiability of the parametric representation (C0, C1, C2, ...)
    -- Geometric Continuity: smoothness of the resulting displayed shape (G0=C0, G1=tangent-cont., G2=curvature-cont. )

Properties of Bezier Curves: Stitching Bezier Curves Together:

How to approximate a given smooth curve with Bezier segments.

A better way to make extensive smooth curves:  B-Splines

Properties of Cubic B-Splines Example use of a closed B-Spline:
    -- Design of a knot for a snowsculpture (closed curve with 9 control points);
    -- A 6-inch model made on a rapid prototyping machine (FDM);
    -- The final sculpture "Knot Divided", Breckenridge, CO, Jan. 2005.

Curve Optimization

What should we do with all the degrees of freedom resulting from the many control points?
==> use it to "optimize" the curve in some way:
    -- Define a cost function:  e.g., Bending Energy = arc-length integral of square of curvature.
     -- Modify curve incrementally so as to minimize this cost function.

Use of Splines in your Final Projects

  • Smooth camera paths.
  • Rollercoaster tracks.
  • Snake bodies (sweep along a spline curve).
  • Curved smooth bodies and shells.

  • Differential Geometry of Curves

    "Analysis" of Curves (as compared to "Design" or "Data Fitting")

    Construction of the Frenet Frame (Ref. frame for intrinsic properties)

    Serret - Frenet Relations


    Chapter 5 in "Geometric Modeling" by Michael E. Mortenson, John Wiley &Sons, 1985

    Spline Patches  (Two-Manifolds = Surfaces)

    A Tensor-Product Surface is a curve swept through space.

    Bicubic Bezier Patches

    Use two parameters (u,v). Apply the Bezier-curve "machinery" twice:
        -- Step one: make a few control curves (say as a function of v);
        -- Use these control curves to define a whole familiy of curves in the u-direction.
    All this forms a two-parameter patch.

    Putting patches together with G1- or G2- continuity is not trivial (same issues as for curves -- only more of them!).
    To make curvature-continuous (G2 or C2) surfaces, use biquintic Bezier patches.
    (but even more of a hassle to get all the control points in the right place!).

    B-Spline Surfaces

    Apply B-Spline "machinery" in two different directions.
    Creates a small patch near the central "mesh" of the control point grid.
    Will create smooth surfaces if the control points are properly reused (overlaped) for adjacent patches.
    Much easier than stitching together Bezier patches -- but creates an approximating surface!

    Subdivision Surfaces

    Extend the above "machinery" to surfaces of arbitrary genus,
    that contain "irregular" vertices (where not exactly 4 quadrilateral patches join together).
     -- Catmull Clark
     -- Doo Sabin
    Similar approaches can also be used to deal with triangulated surfaces:
     -- Loop's Triangle Subdivision
     -- Zorin's Interpolating Triangle Subdivision

    Slides prepared by Prof. O'Brien.

    ( PREVIOUS: Spline Lecture #1)

    Page Editor: Carlo H. Séquin