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

Slides:



Advertisements
Similar presentations
Lecture Notes #11 Curves and Surfaces II
Advertisements

Computer Graphics (Spring 2008) COMS 4160, Lecture 6: Curves 1
© University of Wisconsin, CS559 Spring 2004
Lecture 10 Curves and Surfaces I
Advanced Computer Graphics (Spring 2005) COMS 4162, Lecture 13: NURBs, Spline Surfaces Ravi Ramamoorthi Some material.
Cubic Curves CSE167: Computer Graphics Instructor: Steve Rotenberg UCSD, Fall 2006.
© University of Wisconsin, CS559 Spring 2004
Jehee Lee Seoul National University
1 Introduction Curve Modelling Jack van Wijk TU Eindhoven.
Dr. S.M. Malaek Assistant: M. Younesi
1 Curves and Surfaces. 2 Representation of Curves & Surfaces Polygon Meshes Parametric Cubic Curves Parametric Bi-Cubic Surfaces Quadric Surfaces Specialized.
Lecture 29 of 42 Bezier Curves and Splines Wednesday, 02 April 2008
1 Lecture 13 Modeling Curved Lines and Surfaces. 2 Types of Surfaces Ruled Surfaces B-Splines and Bezier Curves Surfaces of Revolution.
1. 2 The use of curved surfaces allows for a higher level of modeling, especially for the construction of highly realistic models. There are several approaches.
Cubic Bezier and B-Spline Curves
Curves Mortenson Chapter 2-5 and Angel Chapter 9
Computer Graphics (Fall 2008) COMS 4160, Lectures 8,9: Curves Problems
Modelling: Curves Week 11, Wed Mar 23
Computer Graphics (Fall 2005) COMS 4160, Lecture 7: Curves 2
University of British Columbia CPSC 414 Computer Graphics © Tamara Munzner 1 Curves Week 13, Mon 24 Nov 2003.
COEN Computer Graphics I
1 Representing Curves and Surfaces. 2 Introduction We need smooth curves and surfaces in many applications: –model real world objects –computer-aided.
Curve Surfaces June 4, Examples of Curve Surfaces Spheres The body of a car Almost everything in nature.
Splines III – Bézier Curves
Curve Modeling Bézier Curves
Bresenham’s Algorithm. Line Drawing Reference: Edward Angel’s book: –6 th Ed. Sections 6.8 and 6.9 Assuming: –Clipped (to fall within the window) –2D.
11/19/02 (c) 2002, University of Wisconsin, CS 559 Last Time Many, many modeling techniques –Polygon meshes –Parametric instancing –Hierarchical modeling.
A D V A N C E D C O M P U T E R G R A P H I C S CMSC 635 January 15, 2013 Spline curves 1/23 Curves and Surfaces.
CS 376 Introduction to Computer Graphics 04 / 23 / 2007 Instructor: Michael Eckmann.
1 Dr. Scott Schaefer Smooth Curves. 2/109 Smooth Curves Interpolation  Interpolation through Linear Algebra  Lagrange interpolation Bezier curves B-spline.
1 Dr. Scott Schaefer Coons Patches and Gregory Patches.
Quadratic Surfaces. SPLINE REPRESENTATIONS a spline is a flexible strip used to produce a smooth curve through a designated set of points. We.
University of Texas at Austin CS384G - Computer Graphics Fall 2008 Don Fussell Parametric surfaces.
University of Texas at Austin CS384G - Computer Graphics Fall 2008 Don Fussell Parametric Curves.
Graphics Graphics Korea University cgvr.korea.ac.kr Parametric Curves 고려대학교 컴퓨터 그래픽스 연구실.
Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such.
Splines IV – B-spline Curves based on: Michael Gleicher: Curves, chapter 15 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides.
Parametric Surfaces Define points on the surface in terms of two parameters Simplest case: bilinear interpolation s t s x(s,t)x(s,t) P 0,0 P 1,0 P 1,1.
CS 376 Introduction to Computer Graphics 04 / 25 / 2007 Instructor: Michael Eckmann.
Basic Theory (for curve 02). 1.3 Parametric Curves  The main aim of computer graphics is to display an arbitrary surface so that it looks real.  The.
Curves: ch 4 of McConnell General problem with constructing curves: how to create curves that are “smooth” CAD problem Curves could be composed of segments.
Greg Humphreys CS445: Intro Graphics University of Virginia, Fall 2003 Parametric Curves & Surfaces Greg Humphreys University of Virginia CS 445, Spring.
Computer Graphics (Fall 2003) COMS 4160, Lecture 10: Curves 1 Ravi Ramamoorthi
11/26/02(C) University of Wisconsin Last Time BSplines.
CSCE 441: Keyframe Animation/Smooth Curves (Cont.) Jinxiang Chai.
(c) 2002 University of Wisconsin
Slide 129 October 1999CS Computer Graphics (Top Changwatchai) Bézier Curves - Results of Derivation Tangents at endpoints are equal to endpoint slopes.
Splines Sang Il Park Sejong University. Particle Motion A curve in 3-dimensional space World coordinates.
CS 325 Computer Graphics 04 / 30 / 2010 Instructor: Michael Eckmann.
CS559 – Curves Lecture These are course notes (not used as slides) Written by Mike Gleicher, Oct Updates Oct 2006, 2007 Updates Oct 2008 © 2005 Michael.
Foundations of Computer Graphics (Spring 2012) CS 184, Lecture 12: Curves 1
Rendering Bezier Curves (1) Evaluate the curve at a fixed set of parameter values and join the points with straight lines Advantage: Very simple Disadvantages:
CS559: Computer Graphics Lecture 33: Shape Modeling Li Zhang Spring 2008.
Curves University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2013 Tamara Munzner.
CS552: Computer Graphics Lecture 19: Bezier Curves.
Piecewise Polynomial Parametric Curves Sun-Jeong Kim.
Introduction to Parametric Curve and Surface Modeling.
© University of Wisconsin, CS559 Spring 2004
CS5500 Computer Graphics May 11, 2006
Curve & Surface.
Parametric Curves cgvr.korea.ac.kr.
CSE 167 [Win 17], Lecture 10: Curves 2 Ravi Ramamoorthi
CSE 167 [Win 17], Lecture 9: Curves 1 Ravi Ramamoorthi
Parametric Curves.
© University of Wisconsin, CS559 Fall 2004
© University of Wisconsin, CS559 Fall 2004
© University of Wisconsin, CS559 Spring 2004
Implicit Functions Some surfaces can be represented as the vanishing points of functions (defined over 3D space) Places where a function f(x,y,z)=0 Some.
UNIT-5 Curves and Surfaces.
Introduction to Parametric Curve and Surface Modeling
Presentation transcript:

Advanced Computer Graphics (Spring 2005) COMS 4162, Lecture 12: Spline Curves (review) Ravi Ramamoorthi 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) 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= u 1u uu

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

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

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 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? u 0uu uuu uuu uu1 u11 111

Geometrically 00½ 0½10½1 ½11 0½½ ½½1 ½½½

Geometrically 00½ 0½10½1 ½11 0½½ ½½1 ½½½

Subdivision in deCasteljau diagram 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 –  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 – u 0 1 u 1 2 u ? ? ? ? ? ?

deCasteljau: Cubic B-Splines  Easy to generalize using polar-form labels  Impossible remember without -2 –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 – 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) 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