CS284 Computer Aided Geometric Design and Modeling Lecture Summary and Written Assignments |
||||
Lecture
summary, miscellaneous notes, handouts, and links. Questions/comments to Chen. |
||||
Week 1: Tuesday 31 Aug. 2004 |
Introduction
Brief introduction to splines as an important tool in many fields. Splines are curves originally taken from drafting, where they were drawn with a spline tool consisting of metal weights connected to a flexible strip. This strip would form the spline curve used for ship design. History of splines from Laplace and probability theory in 1820, to Isaac Schoenberg and approximation theory in the 1940's. Then the beginning of applications of computation splines (not the wooden ones) to design around 1959 with Paul de Faget DeCasteljau at Citroën and Pierre E. Bézier at Renault (both in Paris). In 1960's in the United States, Steve Coons pushed the parametric and matrix representations for splines. In the early 1970's Carl De Boor and Maurice Cox (independently) worked out recurrence relations to evaluate splines efficiently and accurately, and Rich Riesenfeld (Syracuse) introduced them to computer graphics. In 1974 the first Computer Aided Geometric Design (CAGD) conference was held in Utah coining the term CAGD, and Ken Versprille (publ. 1975, Syracuse) developed NURBS at Syracuse. Reading: Bartels, Beatty, and Barsky: Chapters 1-2 |
|||
Week 1: Thursday 2 Sept. 2004 |
Spline Basics and
Hermite Formulation Splines are vector-valued piecewise continuous parametric and usually polynomial functions. We defined all these terms, and discussed some of the advantages of using a parametric representation: derivative-vector always defined, curve can intersect itself. We also encountered one difficulty of parametric representations: multiple parametric representations can describe the same geometric curve. For instance, try to construct a parameterization for a line which is C0 continuous, but not C1 continuous. Hermite splines of degree 3 are piecewise parametric polynomial functions of degree three. Each curve segment interpolates both the location and a derivative of each endpoint. In particular, we derived a special form for Hermite curves using blending functions. Reading: Bartels, Beatty, and Barsky: Chapters 2-3 |
|||
Week 2: Tuesday 7 Sept. 2004 Tuesday 14 Sept. 2004 |
Hermite Interpolation
More on Hermite interpolation and derivation of natural splines. Discussion of what was traditionally seen as a spline: interpolatory piecewise cubic polynomials with C2 continuity. Probably motivated by a simplification of the physical spline drafting tool discussed in the first lecture. Reading: Bartels, Beatty, and Barsky: Chapter 3 |
|||
Week 2: Thursday 9 Sept. 2004 Written Asn. 1 [.ps] [.pdf] Due Thursday 16 Sept. 2004 |
Cubic Interpolatory Spline
More on interpolation. The natural spline was derived based on the conditions of cubic curve segments having C2 continuity and interpolating given points. These three conditions yield 4n-2 equations in the 4n unkowns for interpolating n points. Therefore, we need two additional constraints. For the natural spline, these conditions contrain the second derivative at the endpoint to be 0. In the next lecture, we will explore other options. Reading: Bartels, Beatty, and Barsky: Chapter 3 Written Assignment 1 [.ps] [.pdf] is due next Thursday.
|
|||
Week 3: Tuesday 14 Sept. 2004 |
End Conditions,
Variational Principle More on the cubic interpolatory spline from the two handouts: End conditions and Variational Principle. Here is a figure to illustrate two of the examples from class. Question: Can you derive the Euler-Lagrange equation that the fourth derivative of the minimizing curve is zero? What if you assume the curve is polynomial? The first-order piecewise linear B-spline was introduced.
|
|||
Week 3: Thursday 16 Sept. 2004 |
Deriving the Uniform
Cubic B-Spline The uniform cubic B-spline can be derived from some basic assumptions: it is zero outside of four consecutive knot intervals, it is a piecewise cubic polynomial, it is C2 continuous across each parametric knot value, and the sections across each knot interval add to unity (this last fact yields the partition of unity and therefore translation invariance and the convex hull property). Reading: Bartels, Beatty, and Barsky: Chapter 4 |
|||
Week 4: Tuesday 21 Sept. 2004 |
More on the Uniform
Cubic B-Spline Rotation, scale, and translation invariance; curvature; double and triple vertices; and end conditions for uniform cubic B-splines. Reading: Bartels, Beatty, and Barsky: Chapter 4 |
|||
Week 4: Thursday 23 Sept. 2004 |
More on the Uniform Cubic
B-Spline and Introducing the Surface Representation The tensor product surface representation was discussed. Reading: Bartels, Beatty, and Barsky: Chapter 4 |
|||
Week 5: Tuesday 28 Sept. 2004 |
More on Surfaces;
Introduction to Bézier Curves More discussion of the tensor product surface representation. The Bernstein basis, Bézier curves and de Castlejau's algorithm for evaluating/subdividing Bézier curves. Some of the Bézier curve demos from Rockwood's CAGD software were shown. Reading: Bartels, Beatty, and Barsky: Chapters 4 and 10 |
|||
Week 5: Thursday 30 Sept. 2004 |
More on Bézier;
Introduction to Splines in a More General Setting Continuation of discussion about Bézier curves, degree raising, more general Bézier subdivision. We watched more Bézier curve demos from Rockwood's CAGD software. Then we began the discussion of splines in a more general setting. Reading: Bartels, Beatty, and Barsky: Chapters 10 and 5 |
|||
Week 6: Tuesday 5 Oct. 2004 |
Continuing on Splines in
a More General Setting Continuation of discussion of splines in a more general setting. We saw how knot multiplicity reduces the continuity at that knot value. Reading: Bartels, Beatty, and Barsky: Chapter 5 |
|||
Week 6: Thursday 7 Oct. 2004 |
Continuing on Splines in
a More General Setting and Introducing the One-Sided Basis Continuation of discussion of splines in a more general setting. One-sided power functions were introduced and the one-sided basis was discussed. Each function is of the form f(x)=0 for x < a and f(x)=(x-a)μ+(x-a)μ+1+ ... +(x-a)k for x ≥ a. These functions have Ck-μ-1 continuity at x=a, and summing them with different values of a and μ yields a function with discontinuities of varying degrees at the values of a. Note that μ is the continuity loss index. Reading: Bartels, Beatty, and Barsky: Chapters 5 and 6 |
|||
Week 7: Tuesday 12 Oct. 2004 |
Continuing on the
One-Sided Basis and Introducing Divided Differences Continuation of discussion of one-sided power functions and the one-sided basis, and introduction to divided differences. Reading: Bartels, Beatty, and Barsky: Chapters 6 and 7 |
|||
Week 7: Thursday 14 Oct. 2004 |
General B-splines General B-splines. Linear, quadratic, and cubic B-splines. Multiple knots. The effects on the curve of varying the knot spacing. Reading: Bartels, Beatty, and Barsky: Chapter 8 |
|||
Week 8: Tuesday 19 Oct. 2004 |
Continuing General
B-splines and the Cox de Boor Recurrence Relation More on General B-splines and the visual effects of knot spacing and multiple knots. The Cox de Boor recurrence relation. Reading: Bartels, Beatty, and Barsky: Chapters 8 and 9 |
|||
Week 8: Thursday 21 Oct. 2004 |
Midterm Exam Reading: Bartels, Beatty, and Barsky: Chapters 1 through 10 |
|||
Week 9: Tuesday 26 Oct. 2004 |
Discussion of Midterm
Exam |
|||
Week 9: Thursday 28 Oct. 2004 |
More on the Cox de Boor
recurrence
relation and Introducing Subdivision The derivation of the Cox de Boor recurrence relation was completed. Subdivision, refinement, and knot insertion was introduced. The idea of subdivision is to add an extra control vertex (or control vertices) to a B-spline curve. This requires adding an extra knot to the knot sequence, adding a new control vertex, and then adjusting the surrounding control vertices so that the curve retains its original shape. Reading: Bartels, Beatty, and Barsky: Chapters 9 and 11 Student presentation: Jeff Hammel: Literature Review: Splines and the Numerical Solution of Vlasov Equation |
|||
Week 10: Tuesday 2 Nov. 2004 |
More on Subdivision and
Knot Insertion Subdivision is performed by increasing the number of vertices which is accomplished by inserting knots. For each new knot added, one new basis function is introduced. Many knots can be added simultaneously and multiple knots are allowed, as long as the integrity of the knot vector is maintained. Each original basis function can be expressed as a linear combination of the new set of basis functions; conversely, the new vertices can be expressed as a linear combination of the old vertices. The combination coefficients are discrete B-splines , denoted by αi,k(j). The specific combination coefficients that determine a new vertex, Wj, are the values of a set of discrete B-splines αi,k(j), all computed at the same knot value, wj. Reading: Bartels, Beatty, and Barsky: Chapter 11 Student presentation: Bryan Klingner: Subdivision surfaces, general introduction, discussion of butterfly and Catmull-Clark techniques |
|||
Week 10: Thursday 4 Nov. 2004 |
Student presentation
Student presentation: Abhik Pramanik: Subdivision of Fluid Flow. |
|||
Week 11: Tuesday 9 Nov. 2004 |
More on Subdivision and
Knot Insertion and Introduction to the Oslo Algorithm The first Oslo algorithm is based on a recurrence for the discrete B-splines, αi,k(j), as a function of the orignal and refined knot vectors, (ui) and (wj), respectively. Given these knot vectors, the algorithm computes αi,k(j). The algorithm allows inserting many knots simultaneously. Reading: Bartels, Beatty, and Barsky: Chapters 11 and 12 Student presentation: Yibin Tian: Unwrapping Hartmann-Shack Images from Highly Aberrated Eyes Using an Iterative B-spline Based Extrapolation Method, by Linda Lundstrom & Peter Unsbo, Royal Institute of Technology (KTH), Sweden |
|||
Week 11: Thursday 11 Nov. 2004 |
Veterans' Day
(university holiday)
|
|||
Week 12: Tuesday 16 Nov. 2004 |
More on the Oslo
Algorithm The second Oslo algorithm is a control vertex recurrence that directly computes the new control vertices, Wj, given the original vertices, Vi. Like the first Oslo algorithm, this recurrence also uses the original and refined knot vectors, (ui) and (wj), respectively, as input. But in this version of the Oslo algorithm, the discrete B-splines are not explicitly computed. Subdivision of tensor product surfaces inserts knot lines (i.e., u=constant or v=constant) rather than single knot values. Reading: Bartels, Beatty, and Barsky: Chapter 12 Student presentation: Derek Chan: Escherization and Ornamental Subdivisions Here is the paper written by Craig Kaplan. |
|||
Week 12: Thursday 18 Nov. 2004 |
Geometric Continuity and Introduction to Beta-splines
First and second order parametric and geometric continuity; unit tanget and curvature vectors. Beta-splines are built upon geometric continuity constraints. Reading: Bartels, Beatty, and Barsky: Chapters 13 and 14 Student presentation: Seung Kim: Boolean Operations on Surfaces |
|||
Week 13: Tuesday 23 Nov. 2004 |
Real Time Surface
Tesselation Dr. Adrian Sfarti will be the guest lecturer. Presentation: Direct Real Time Tessellation (PDF 374K) Reference: New 3D Graphics Rendering Engine Architecture for Direct Tessellation of Spline Surfaces (PDF 648K) |
|||
Week 13: Thursday 25 Nov. 2004 |
Thanksgiving Day
(university holiday)
|
|||
Week 14: Tuesday 30 Nov. 2004 |
Shape Parameters, Continously Shaped Beta-splines, Beta-spline Surfaces
Discussion of shape parameters and generalizing from uniformly-shaped to continously-shaped Beta-splines and from Beta-spline curves to surfaces. Reading: Bartels, Beatty, and Barsky: Chapter 14 Student presentation: Yongwook Jeong: Sketch- and constraint-based design of B-spline surfaces |
|||
Week 14: Thursday 2 Dec. 2004 |
Three Characterizations of Geometric Continuity Reading: Bartels, Beatty, and Barsky: Chapter 15 Student presentation: David Wallace: Implicit Surfaces |
|||
Week 15: Tuesday 7 Dec. 2004 |
Rationals, NURBS, Conics and Quadrics Reading: Bartels, Beatty, and Barsky: Chapter ? Student presentation: Klaus Strelau: From Conics in Projective Space to NURBS |
|||
Week 15: Thursday 9 Dec. 2004 |
Final Project
Presentations |
|||
Links | Software |