Parametric Curves cgvr.korea.ac.kr.

Slides:



Advertisements
Similar presentations
Interpolating curves.
Advertisements

Lecture Notes #11 Curves and Surfaces II
Computer Graphics (Spring 2008) COMS 4160, Lecture 6: Curves 1
© University of Wisconsin, CS559 Spring 2004
2002 by Jim X. Chen: Bezier Curve Bezier Curve.
Lecture 10 Curves and Surfaces I
Cubic Curves CSE167: Computer Graphics Instructor: Steve Rotenberg UCSD, Fall 2006.
ICS 415 Computer Graphics Bézier Splines (Chapter 8)
© University of Wisconsin, CS559 Spring 2004
Jehee Lee Seoul National University
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.
Curves Chiew-Lan Tai.
Curves Chiew-Lan Tai. Curves 2 Reading Required Hearn & Baker, 8-8 – 8-10, 8-12 Foley, 11.2.
Advanced Computer Graphics (Spring 2005) COMS 4162, Lecture 12: Spline Curves (review) Ravi Ramamoorthi Most material.
Curves Mortenson Chapter 2-5 and Angel Chapter 9
Modelling: Curves Week 11, Wed Mar 23
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.
Curve Modeling Bézier Curves
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.
Interactive Graphics Lecture 9: Slide 1 Interactive Graphics Lecture 9: Introduction to Spline Curves.
V. Space Curves Types of curves Explicit Implicit Parametric.
Cornell CS465 Fall 2004 Lecture 15© 2004 Steve Marschner 1 2D Spline Curves CS 465 Lecture 15.
Quadratic Surfaces. SPLINE REPRESENTATIONS a spline is a flexible strip used to produce a smooth curve through a designated set of points. We.
INTERPOLATION & APPROXIMATION. Curve algorithm General curve shape may be generated using method of –Interpolation (also known as curve fitting) Curve.
University of Texas at Austin CS384G - Computer Graphics Fall 2008 Don Fussell Parametric Curves.
Graphics Graphics Korea University cgvr.korea.ac.kr Parametric Curves 고려대학교 컴퓨터 그래픽스 연구실.
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.
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.
04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.
11/6/ :55 Graphics II Introduction to Parametric Curves and Surfaces Session 2.
Greg Humphreys CS445: Intro Graphics University of Virginia, Fall 2003 Parametric Curves & Surfaces Greg Humphreys University of Virginia CS 445, Spring.
Computing & Information Sciences Kansas State University Lecture 31 of 42CIS 636/736: (Introduction to) Computer Graphics Lecture 32 of 42 Wednesday, 11.
11/26/02(C) University of Wisconsin Last Time BSplines.
Parametric Curves CS 318 Interactive Computer Graphics John C. Hart.
CS 450: Computer Graphics PARAMETRIC SPLINES AND SURFACES
Splines Sang Il Park Sejong University. Particle Motion A curve in 3-dimensional space World coordinates.
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:
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
Computer Graphics Lecture 38
CS5500 Computer Graphics May 11, 2006
Curve & Surface.
CSE 167 [Win 17], Lecture 10: Curves 2 Ravi Ramamoorthi
Chapter 10-2: Curves.
2D Spline Curves CS 465 Lecture 15 © 2004 Steve Marschner • 1.
CSE 167 [Win 17], Lecture 9: Curves 1 Ravi Ramamoorthi
CS 430/536 Computer Graphics I Intro to Curves Week 4, Lecture 7
Advanced Computer Graphics: Parametric Curves and Surfaces
Parametric Curves.
© University of Wisconsin, CS559 Fall 2004
© University of Wisconsin, CS559 Fall 2004
CURVES CAD/CAM/CAE.
© University of Wisconsin, CS559 Spring 2004
Spline Curves COMP 575/COMP 770.
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.
CSCE 441: Keyframe Animation/Smooth Curves (Cont.)
Three-Dimensional Object Representation
Introduction to Parametric Curve and Surface Modeling
Type to enter a caption. Computer Graphics Week 10 Lecture 1.
Spline representation. ❖ A spline is a flexible strip used to produce a smooth curve through a designated set of points. ❖ Mathematically describe such.
Presentation transcript:

Parametric Curves cgvr.korea.ac.kr

Overview Introduction to mathematical splines Bezier curves Continuity conditions (C0, C1, C2, G1, G2) Creating continuous splines C2-interpolating splines B-splines Catmull-Rom splines cgvr.korea.ac.kr

Introduction Mathematical splines are motivated by the “loftsman’s spline”: Long, narrow strip of wood or plastic Used to fit curves through specified data points Shaped by lead weights called “ducks” Gives curves that are “smooth” or “fair” Such splines have been used for designing: Automobiles Ship hulls Aircraft fuselages and wings cgvr.korea.ac.kr

Requirements Here are some requirements we might like to have in our mathematical splines: Predictable control Multiple values Local control Versatility Continuity cgvr.korea.ac.kr

Mathematical Splines The mathematical splines we’ll use are: Piecewise Parametric Polynomials Let’s look at each of these terms… cgvr.korea.ac.kr

Parametric Curves In general, a “parametric” curve in the plane is expressed as: Example: A circle with radius r centered at the origin is given by: By contrast, an “implicit” representation of the circle is: cgvr.korea.ac.kr

Parametric Polynomial Curves A parametric “polynomial” curve is a parametric curve where each function x(t), y(t) is described by a polynomial: Polynomial curves have certain advantages Easy to compute Infinitely differentiable cgvr.korea.ac.kr

Piecewise Parametric Polynomial Curves A “piecewise” parametric polynomial curve uses different polynomial functions for different parts of the curve Advantage: Provides flexibility Problem: How do you guarantee smoothness at the joints? (Problem known as “continuity”) In the rest parts of this lecture, we’ll look at: Bezier curves – general class of polynomial curves Splines – ways of putting these curves together cgvr.korea.ac.kr

Bezier Curves Developed simultaneously by Bezier (at Renault) and by deCasteljau (at Citroen), circa 1960 The Bezier Curve Q(u) is defined by nested interpolation: Vis are “control points” {V0, …, Vn} is the “control polygon” cgvr.korea.ac.kr

Example: Bezier Curves cgvr.korea.ac.kr

Bezier Curves: Basic Properties Bezier Curves enjoy some nice properties: Endpoint interpolation: Convex hull: The curve is contained in the convex hull of its control polygon Symmetry: Q(u) is defined by {V0, …, Vn} ≡ Q(1-u) is defined by {Vn, …, V0} cgvr.korea.ac.kr

Example: 2D Bezier Curves cgvr.korea.ac.kr

Bezier Curves: Explicit Formulation Let’s give Vi a superscript Vij to indicate the level of nesting An explicit formulation Q(u) is given by the recurrence: cgvr.korea.ac.kr

Explicit Formulation (cont.) For n=2, we have: In general: is the i ‘th Bernstein polynomial of degree n cgvr.korea.ac.kr

Example: Explicit Formulation cgvr.korea.ac.kr

Bezier Curves: More Properties Here are some more properties of Bezier curves Degree: Q(u) is a polynomial of degree n Control points: How many conditions must we specify to uniquely determine a Bezier curve of degree n cgvr.korea.ac.kr

More Properties (cont.) Tangent: k ‘th derivatives: In general, Q(k)(0) depends only on V0, …, Vk Q(k)(1) depends only on Vn, …, Vn-k At intermediate points , all control points are involved every derivative cgvr.korea.ac.kr

Explanation cgvr.korea.ac.kr

Cubic Curves For the rest of this discussion, we’ll restrict ourselves to piecewise cubic curves In CAGD, higher-order curves are often used Gives more freedom in design Can provide higher degree of continuity between pieces For Graphics, piecewise cubic lets you do about anything Lowest degree for specifying points to interpolate and tangents Lowest degree for specifying curve in space All the ideas here generalize to higher-order curves cgvr.korea.ac.kr

Matrix Form of Bezier Curves Bezier curves can also be described in matrix form: cgvr.korea.ac.kr

Display: Recursive Subdivision Q: Suppose you wanted to draw one of these Bezier curves – how would you do it? A: Recursive subdivision cgvr.korea.ac.kr

Display (cont.) Here’s pseudo code for the recursive subdivision display algorithm Procedure Display({V0, …, Vn}) if {V0, …, Vn} flat within e then Output line segment V0Vn else Subdivide to produce {L0, …, Ln} and {R0, …, Rn} Display({L0, …, Ln}) Display({R0, …, Rn}) end if end procedure cgvr.korea.ac.kr

Splines To build up more complex curves, we can piece together different Bezier curves to make “splines” For example, we can get: Positional (C0) Continuity: Derivative (C1) Continuity: Q: How would you build an interactive system to satisfy these conditions? cgvr.korea.ac.kr

Advantages of Splines Advantages of splines over higher-order Bezier curves: Numerically more stable Easier to compute Fewer bumps and wiggles cgvr.korea.ac.kr

Tangent (G1) Continuity Q: Suppose the tangents were in opposite directions but not of same magnitude – how does the curves appear? This construction gives “tangent (G1) continuity” Q: How is G1 continuity different from C1? cgvr.korea.ac.kr

Explanation Positional (C0) continuity Derivative (C1) continuity Qn+1(u) Positional (C0) continuity Derivative (C1) continuity Tangent (G1) continuity Qn(u) Qn+1(u) Qn(u) Qn+1(u) Qn(u) cgvr.korea.ac.kr

Curvature (C2) Continuity Q: Suppose you want even higher degrees of continuity – e.g., not just slopes but curvatures – what additional geometric constraints are imposed? We’ll begin by developing some more mathematics..... cgvr.korea.ac.kr

Operator Calculus Let’s use a tool known as “operator calculus” Define the operator D by: Rewriting our explicit formulation in this notation gives: Applying the binomial theorem gives: cgvr.korea.ac.kr

Taking the Derivative One advantage of this form is that now we can take the derivative: What’s (D-1)V0? Plugging in and expanding: This gives us a general expression for the derivative Q’(u) cgvr.korea.ac.kr

Specializing to n=3 What’s the derivative Q’(u) for a cubic Bezier curve? Note that: When u=0: Q’(u) = 3(V1-V0) When u=1: Q’(u) = 3(V3-V2) Geometric interpretation: So for C1 continuity, we need to set: V0 V1 Q’(1) Q’(0) W0 W1 W2 W3 V2 V3 cgvr.korea.ac.kr

Taking the Second Derivative Taking the derivative once again yields: What does (D-1)2 do? cgvr.korea.ac.kr

Second-Order Continuity So the conditions for second-order continuity are: Putting these together gives: Geometric interpretation Q’’(1) Q’’(0) V0 Q’(0) Q’(1) V1 V3 V2 cgvr.korea.ac.kr

C3 Continuity V0 V3 V1 V2 cgvr.korea.ac.kr

C3 Continuity W1 W2 V0 V3 W0 W3 V1 V2 cgvr.korea.ac.kr

C3 Continuity W1 W2 V0 V3 W0 W3 V1 V2 cgvr.korea.ac.kr

C3 Continuity W2 W1 V0 V3 W0 W3 V1 V2 cgvr.korea.ac.kr

C3 Continuity W3 W2 W1 V0 V3 W0 V1 V2 cgvr.korea.ac.kr

C3 Continuity Summary of continuity conditions C0 straightforward, but generally not enough C3 is too constrained (with cubics) W3 W2 W1 V0 V3 W0 V1 V2 cgvr.korea.ac.kr

Creating Continuous Splines We’ll look at three ways to specify splines with C1 and C2 continuity C2 interpolating splines B-splines Catmull-Rom splines cgvr.korea.ac.kr

C2 Interpolating Splines The control points specified by the user, called “joints”, are interpolated by the spline For each of x and y, we needed to specify 3 conditions for each cubic Bezier segment. So if there are m segments, we’ll need 3m-1 conditions Q: How many these constraints are determined by each joint? joint cgvr.korea.ac.kr

In-Depth Analysis At each interior joint j, we have: Last curve ends at j Next curve begins at j Tangents of two curves at j are equal Curvature of two curves at j are equal The m segments give: m-1 interior joints 3 conditions The 2 end joints give 2 further constraints: First curve begins at first joint Last curve ends at last joint Gives 3m-1 constraints altogether cgvr.korea.ac.kr

End Conditions The analysis shows that specifying m+1 joints for m segments leaves 2 extra degree of freedom These 2 extra constraints can be specified in a variety of ways: An interactive system Constraints specified as user inputs “Natural” cubic splines Second derivatives at endpoints defined to be 0 Maximal continuity Require C3 continuity between first and last pairs of curves cgvr.korea.ac.kr

C2 Interpolating Splines Problem: Describe an interactive system for specifying C2 interpolating splines Solution: 1. Let user specify first four Bezier control points 2. This constraints next 2 control points – draw these in. 3. User then picks 1 more 4. Repeat steps 2-3. cgvr.korea.ac.kr

Global vs. Local Control These C2 interpolating splines yield only “global control” – moving any one joint (or control point) changes the entire curve! Global control is problematic: Makes splines difficult to design Makes incremental display inefficient There’s a fix, but nothing comes for free. Two choices: B-splines Keep C2 continuity Give up interpolation Catmull-Rom Splines Keep interpolation Give up C2 continuity – provides C1 only cgvr.korea.ac.kr

B-Splines Previous construction (C2 interpolating splines): Choose joints, constrained by the “A-frames” New construction (B-splines): Choose points on A-frames Let these determine the rest of Bezier control points and joints The B-splines I’ll describe are known more precisely as “uniform B- splines” cgvr.korea.ac.kr

Explanation C2 interpolating spline B-splines V2 V1 V0 B2 B1 V2 V1 V3 cgvr.korea.ac.kr

B-Spline Construction n+1 control points polynomials of degree d-1 cgvr.korea.ac.kr

B-Spline Construction n+1 control points polynomials of degree d-1 The points specified by the user in this construction are called “deBoor points” cgvr.korea.ac.kr

B-Spline Properties Here are some properties of B-splines: C2 continuity Approximating Does not interpolate deBoor points Locality Each segment determined by 4 deBoor points Each deBoor point determine 4 segments Convex hull Curves lies inside convex hull of deBoor points cgvr.korea.ac.kr

Algebraic Construction of B-Splines V1 = (1 - 1/3)B1 + 1/3 B2 V2 = (1- 2/3)B1 + 2/3 B2 V0 = ½ [(1- 2/3)B0 + 2/3 B1] + ½ [(1 - 1/3)B1 + 1/3 B2] = 1/6 B0 + 2/3 B1 + 1/6 B2 V3 = 1/6 B1 + 2/3 B2 + 1/6 B3 cgvr.korea.ac.kr

Algebraic Construction of B-Splines (cont.) Once again, this construction can be expressed in terms of a matrix: cgvr.korea.ac.kr

Drawing B-Splines Drawing B-splines is therefore quite simple Procedure Draw-B-Spline ({B0, …, Bn}) for i=0 to n-3 do Convert Bi, …, Bi+3 into a Bezier control polygon V0, …, V3 Display({V0, …, Vn}) end for end procedure cgvr.korea.ac.kr

Multiple Vertices Q: What happens if you put more than one control point in the same place? Some possibilities: Triple vertex Double vertex Collinear vertices cgvr.korea.ac.kr

End Conditions You can also use multiple vertices at the endpoints Double endpoints Curve tangent to line between first distinct points Triple endpoints Curve interpolates endpoint Start out with a line segment Phantom vertices Gives interpolation without line segment at ends cgvr.korea.ac.kr

Catmull-Rom Splines The Catmull-Rom splines Give up C2 continuity Keep interpolation For the derivation, let’s go back to the interpolation algorithm. We had a conditions at each joint j: 1. Last curve end at j 2. Next curve begins at j 3. Tangents of two curves at j are equal 4. Curvature of two curves at j are equal If we… Eliminate condition 4 Make condition 3 depend only on local control points … then we can have local control! cgvr.korea.ac.kr

Derivation of Catmull-Rom Splines Idea: (same as B-splines) Start with joints to interpolate Build a cubic Bezier curve between successive points The endpoints of the cubic Bezier are obvious: Q: What should we do for the other two points? =V3 =V0 B0 B3 B2 B1 cgvr.korea.ac.kr

Derivation of Catmull-Rom (cont.) A: Catmull & Rom use half the magnitude of the vector between adjacent control points: Many other choices work – for example, using an arbitrary constant t times this vector gives a “tension” control =V3 =V0 B0 B3 B2 B1 cgvr.korea.ac.kr

Matrix Formulation The Catmull-Rom splines also admit a matrix formulation: Exercise: Derive this matrix cgvr.korea.ac.kr

Properties Here are some properties of Catmull-Rom splines: C1 continuity Interpolating Locality No convex hull property cgvr.korea.ac.kr

Thanks… cgvr.korea.ac.kr