Download presentation
Presentation is loading. Please wait.
1
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
2
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
3
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
4
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)
5
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)
6
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( )
7
Parametric Representations One function vs. many (defined piecewise) Continuity How specified?
8
Parametric Polynomial Curves A parametric polynomial curve of order n: Advantages of polynomial curves Easy to compute Infinitely differentiable everywhere
9
(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.
10
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
11
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
12
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)
13
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
14
Geometric interpretation: Quadratic u u u 1-u
15
Geometric Interpretation: Cubic u u u u u u
16
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
17
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)
18
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)
19
Geometric interpretation: Quadratic u u u 1-u 00 01=10 11 0u 1u uu
20
Polar Forms: Cubic Bezier Curve 000 001011 111 000001011111 1-uuuu 00u 01u 11u 1-uuu 0uu1uu 1-u u uuu
21
Geometric Interpretation: Cubic 00u 0u1 u11 0uu uu1 uuu 000 111 001011
22
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)
23
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
24
Geometrically 00½ 0½10½1 ½11 0½½ ½½1 ½½½ 000 111 001011
25
Geometrically 00½ 0½10½1 ½11 0½½ ½½1 ½½½ 000 111 001011
26
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
27
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
28
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?
29
Piecewise Polynomial Curves Idea: Use different polynomial functions for different parts of the curve Advantage: Flexibility Local control Issue: Smoothness at “joints” (continuity)
30
Continuity Continuity C k indicates adjacent curves have the same kth derivative at their joints
31
C 0 Continuity Adjacent curves share … Same endpoints: Q i (1) = Q i+1 (0) Aside: discontinuous curves sometimes called “C -1 ”
32
C 1 Continuity Adjacent curves share … Same endpoints: Q i (1) = Q i+1 (0) Same derivatives: Q i ’(1) = Q i+1 ’(0)
33
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)
34
(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.
35
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
36
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
37
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 ? ? ? ? ? ?
38
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 ? ? ? ?
39
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
40
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.