# Advanced Computer Graphics (Spring 2005) COMS 4162, Lecture 12: Spline Curves (review) Ravi Ramamoorthi Most material.

## Presentation on theme: "Advanced Computer Graphics (Spring 2005) COMS 4162, Lecture 12: Spline Curves (review) Ravi Ramamoorthi Most material."— Presentation transcript:

Advanced Computer Graphics (Spring 2005) COMS 4162, Lecture 12: Spline Curves (review) Ravi Ramamoorthi http://www.cs.columbia.edu/~cs4162 Most material taken from COMS 4160 lectures 6 and 7

To Do / Motivation  One of written questions in assignment deals with material in this (actually next) lecture  Otherwise, mainly intended for completeness, since splines are very common modeling tool  This lecture reviews spline curves (from 4160). Next lecture discusses extensions to NURBs and surfaces

Curved Surfaces Motivation  Exact boundary representation for some objects  More concise representation than polygonal mesh  Easier to model with and specify for many man-made objects and machine parts (started with car bodies) H&B Figure 10.46

Curve Representations  Function: y = f(x)  Implicit: f(x,y) = 0  Subdivision: (x,y) as limit of recursive process  Parametric: x = f(t), y = g(t)

Curved Surface Representations  Function: z = f(x,y)  Implicit: f(x,y,z) = 0  Subdivision: (x,y,z) as limit of recursive process  Parametric: x = f(s,t), y = g(s,t), z = h(s,t)

Parametric Surfaces  Boundary defined by parametric function: x = f(u,v) y = f(u,v) z = f(u,v)  Example (sphere): x = sin(  ) cos(  ) y = sin(  ) sin(  ) z = cos(  )

Parametric Representations  One function vs. many (defined piecewise)  Continuity  How specified?

Parametric Polynomial Curves  A parametric polynomial curve of order n:  Advantages of polynomial curves  Easy to compute  Infinitely differentiable everywhere

(Cubic) Spline Constructions  Bézier: 4 control points  B-splines: approximating, C 2, local control  Hermite: 2 points, 2 normals  Natural splines: interpolating, C 2, no local control  Catmull-Rom: interpolating, C 1, local control Book chapter 11 covers some spline constructions But material is hard to read, doesn’t follow format here. I recommend following lecture.

Bezier Curve (with 4160-HW2 demo)  Motivation: Draw a smooth intuitive curve (or surface) given a few key user-specified control points hw2.exe Control points (all that user specifies, edits) Smooth Bezier curve (drawn automatically) Control polygon

Bezier Curve: (Desirable) properties  Interpolates, is tangent to end points  Curve within convex hull of control polygon Control points (all that user specifies, edits) Smooth Bezier curve (drawn automatically) Control polygon hw2.exe

deCasteljau: Linear Bezier Curve  Just a simple linear combination or interpolation (easy to code up, very numerically stable) Linear (Degree 1, Order 2) F(0) = P0, F(1) = P1 F(u) = ? P0 P1 P0P1 1-uu F(u) = (1-u) P0 + u P1 F(0) F(u) F(1)

deCasteljau: Quadratic Bezier Curve P0 P1 P2 Quadratic Degree 2, Order 3 F(0) = P0, F(1) = P2 F(u) = ? F(u) = (1-u) 2 P0 + 2u(1-u) P1 + u 2 P2 P0P1P2 1-u u u u

Geometric interpretation: Quadratic u u u 1-u

Geometric Interpretation: Cubic u u u u u u

Summary: deCasteljau Algorithm Linear Degree 1, Order 2 F(0) = P0, F(1) = P1 P0 P1 P0P1 1-uu F(u) = (1-u) P0 + u P1 P0 P1 P2 Quadratic Degree 2, Order 3 F(0) = P0, F(1) = P2 P0P1P2 F(u) = (1-u) 2 P0 + 2u(1-u) P1 + u 2 P2 1-u u u u P0 P1P2 P3 Cubic Degree 3, Order 4 F(0) = P0, F(1) = P3 P0P1P2P3 1-u u u uu u u F(u) = (1-u) 3 P0 +3u(1-u) 2 P1 +3u 2 (1-u) P2 + u 3 P3 1-u

Idea of Blossoms/Polar Forms  (Optional) Labeling trick for control points and intermediate deCasteljau points that makes thing intuitive  E.g. quadratic Bezier curve F(u)  Define auxiliary function f(u 1,u 2 ) [number of args = degree]  Points on curve simply have u 1 =u 2 so that F(u) = f(u,u)  And we can label control points and deCasteljau points not on curve with appropriate values of (u 1,u 2 ) f(0,0) = F(0)f(1,1) = F(1) f(0,1)=f(1,0) f(u,u) = F(u)

Idea of Blossoms/Polar Forms  Points on curve simply have u 1 =u 2 so that F(u) = f(u,u)  f is symmetric f(0,1) = f(1,0)  Only interpolate linearly between points with one arg different  f(0,u) = (1-u) f(0,0) + u f(0,1) Here, interpolate f(0,0) and f(0,1)=f(1,0) 000111 F(u) = f(uu) = (1-u) 2 P0 + 2u(1-u) P1 + u 2 P2 1-u u u u 0u1u uu f(0,0) = F(0)f(1,1) = F(1) f(0,1)=f(1,0) f(u,u) = F(u)

Geometric interpretation: Quadratic u u u 1-u 00 01=10 11 0u 1u uu

Polar Forms: Cubic Bezier Curve 000 001011 111 000001011111 1-uuuu 00u 01u 11u 1-uuu 0uu1uu 1-u u uuu

Geometric Interpretation: Cubic 00u 0u1 u11 0uu uu1 uuu 000 111 001011

Why Polar Forms?  Simple mnemonic: which points to interpolate and how in deCasteljau algorithm  Easy to see how to subdivide Bezier curve (next) which is useful for drawing recursively  Generalizes to arbitrary spline curves (just label control points correctly instead of 00 01 11 for Bezier)  Easy for many analyses (beyond scope of course)

Subdividing Bezier Curves Drawing: Subdivide into halves (u = ½) Demo: hw2.exehw2.exe  Recursively draw each piece  At some tolerance, draw control polygon  Trivial for Bezier curves (from deCasteljau algorithm): hence widely used for drawing Why specific labels/ control points on left/right?  How do they follow from deCasteljau? 000 001 011 111 000 00u 0uu uuu uuu uu1 u11 111

Geometrically 00½ 0½10½1 ½11 0½½ ½½1 ½½½ 000 111 001011

Geometrically 00½ 0½10½1 ½11 0½½ ½½1 ½½½ 000 111 001011

Subdivision in deCasteljau diagram 000 001011 111 000001011111 1-uuuu 00u 01u 11u 1-uuu 0uu1uu 1-u u uuu Left part of Bezier curve (000, 00u, 0uu, uuu) Always left edge of deCasteljau pyramid Right part of Bezier curve (uuu, 1uu, 11u, 111) Always right edge of deCasteljau pyramid These (interior) points don’t appear in subdivided curves at all

Properties (brief discussion)  Demo:  Interpolation: End-points, but approximates others  Single piece, moving one point affects whole curve (no local control as in B-splines later)  Invariant to translations, rotations, scales etc. That is, translating all control points translates entire curve  Easily subdivided into parts for drawing. Hence, Bezier curves easiest for drawing (4160-HW2) hw2.exe

Bezier: Disadvantages  Single piece, no local control (move a control point, whole curve changes) hw2.exehw2.exe  Complex shapes: can be very high degree, difficult  In practice, combine many Bezier curve segments  But only position continuous at join since Bezier curves interpolate end-points (which match at segment boundaries)  Unpleasant derivative (slope) discontinuities at end-points  Can you see why this is an issue?

Piecewise Polynomial Curves  Idea:  Use different polynomial functions for different parts of the curve  Advantage:  Flexibility  Local control  Issue:  Smoothness at “joints” (continuity)

Continuity  Continuity C k indicates adjacent curves have the same kth derivative at their joints

C 0 Continuity  Adjacent curves share …  Same endpoints: Q i (1) = Q i+1 (0)  Aside: discontinuous curves sometimes called “C -1 ”

C 1 Continuity  Adjacent curves share …  Same endpoints: Q i (1) = Q i+1 (0)  Same derivatives: Q i ’(1) = Q i+1 ’(0)

C 2 Continuity  Adjacent curves share …  Same endpoints: Q i (1) = Q i+1 (0)  Same derivatives: Q i ’(1) = Q i+1 ’(0)  Same second derivatives: Q i ’’(1) = Q i+1 ’’(0)

(Cubic) Spline Constructions  Bézier: 4 control points  B-splines: approximating, C 2, local control  Hermite: 2 points, 2 normals  Natural splines: interpolating, C 2, no local control  Catmull-Rom: interpolating, C 1, local control Book chapter 11 covers some spline constructions But material is hard to read, doesn’t follow format here. I recommend following lecture.

B-Splines  Cubic B-splines have C 2 continuity, local control  4 segments / control point, 4 control points/segment  Knots where two segments join: Knotvector  Knotvector uniform/non-uniform (we only consider uniform cubic B-splines, not general NURBS) Knot: C 2 continuity deBoor points Demo: hw2.exehw2.exe

Polar Forms: Cubic Bspline Curve -2 –1 0 –1 0 1 0 1 2 1 2 3  Labeling little different from in Bezier curve  No interpolation of end-points like in Bezier  Advantage of polar forms: easy to generalize Uniform knot vector: -2, -1, 0, 1, 2,3 Labels correspond to this

deCasteljau: Cubic B-Splines  Easy to generalize using polar-form labels  Impossible remember without -2 –1 0 –1 0 1 0 1 2 1 2 3 -2 -1 0 -1 0 1 0 1 2 1 2 3 -1 0 u 0 1 u 1 2 u ? ? ? ? ? ?

deCasteljau: Cubic B-Splines  Easy to generalize using polar-form labels  Impossible remember without -2 –1 0 –1 0 1 0 1 2 1 2 3 -2 -1 0 -1 0 1 0 1 2 1 2 3 -1 0 u 0 1 u 1 2 u 1-u/3 (1-u)/3 (2+u)/3 (2-u)/3 (1+u)/3 u/3 0 u u 1 u u ? ? ? ?

deCasteljau: Cubic B-Splines  Easy to generalize using polar-form labels  Impossible remember without -2 –1 0 –1 0 1 0 1 2 1 2 3 -2 -1 0 -1 0 1 0 1 2 1 2 3 -1 0 u 0 1 u 1 2 u 1-u/3 (1-u)/3 (2+u)/3 (2-u)/3 (1+u)/3 u/3 0 u u 1 u u (1-u)/2 (1+u)/2 1-u/2 u/2 u u u 1-u u

Explicit Formula (derive as exercise) -2 -1 0 -1 0 1 0 1 2 1 2 3 -1 0 u 0 1 u 1 2 u 1-u/3 (1-u)/3 (2+u)/3 (2-u)/3 (1+u)/3 u/3 0 u u 1 u u (1-u)/2 (1+u)/2 1-u/2 u/2 u u u 1-u u P0 P1 P2 P3

Download ppt "Advanced Computer Graphics (Spring 2005) COMS 4162, Lecture 12: Spline Curves (review) Ravi Ramamoorthi Most material."

Similar presentations