Curves University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2013 Tamara Munzner.

Slides:



Advertisements
Similar presentations
Curves Jim Van Verth Essential Math for Games Animation Problem: want to replay stored set of transformations  Generated by.
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.
COMPUTER GRAPHICS CS 482 – FALL 2014 OCTOBER 8, 2014 SPLINES CUBIC CURVES HERMITE CURVES BÉZIER CURVES B-SPLINES BICUBIC SURFACES SUBDIVISION SURFACES.
Lecture 10 Curves and Surfaces I
Geometric Modeling Notes on Curve and Surface Continuity Parts of Mortenson, Farin, Angel, Hill and others.
Cubic Curves CSE167: Computer Graphics Instructor: Steve Rotenberg UCSD, Fall 2006.
ICS 415 Computer Graphics Bézier Splines (Chapter 8)
CS 445/645 Fall 2001 Hermite and Bézier Splines. Specifying Curves Control Points –A set of points that influence the curve’s shape Knots –Control points.
© University of Wisconsin, CS559 Spring 2004
B-Spline Blending Functions
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
1Notes  Assignment 0 is due today!  To get better feel for splines, play with formulas in MATLAB!
Informationsteknologi Monday, December 10, 2007Computer Graphics - Class 161 Today’s class Curve fitting Evaluators Surfaces.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2007 Tamara Munzner Curves Week 12, Wed Apr.
Advanced Computer Graphics (Spring 2005) COMS 4162, Lecture 12: Spline Curves (review) Ravi Ramamoorthi Most material.
Modeling of curves Needs a ways of representing curves: Reproducible - the representation should give the same curve every time; Computationally Quick;
1 Lecture 13 Modeling Curved Lines and Surfaces. 2 Types of Surfaces Ruled Surfaces B-Splines and Bezier Curves Surfaces of Revolution.
Geometric Modeling Surfaces Mortenson Chapter 6 and Angel Chapter 9.
Cubic Bezier and B-Spline Curves
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
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
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.
Interactive Graphics Lecture 9: Slide 1 Interactive Graphics Lecture 9: Introduction to Spline Curves.
V. Space Curves Types of curves Explicit Implicit Parametric.
CS 445 / 645 Introduction to Computer Graphics Lecture 23 Bézier Curves Lecture 23 Bézier Curves.
1 Dr. Scott Schaefer Smooth Curves. 2/109 Smooth Curves Interpolation  Interpolation through Linear Algebra  Lagrange interpolation Bezier curves B-spline.
Curves.
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 Curves.
CS 445/645 Fall 2001 Splines/Film/Animation. Final Exam Thursday, December 13 th from 7 – 10 p.m. –Room Olsson 011 You may use one sheet of notes (8.5.
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 445 / 645 Introduction to Computer Graphics Lecture 23 Bézier Curves Lecture 23 Bézier Curves.
Representation of Curves & Surfaces Prof. Lizhuang Ma Shanghai Jiao Tong University.
04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.
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.
11/26/02(C) University of Wisconsin Last Time BSplines.
CSCE 441: Keyframe Animation/Smooth Curves (Cont.) Jinxiang Chai.
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.
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:
CS552: Computer Graphics Lecture 19: Bezier Curves.
Object Modeling: Curves and Surfaces CEng 477 Introduction to Computer Graphics.
Introduction to Parametric Curve and Surface Modeling.
© University of Wisconsin, CS559 Spring 2004
Introduction to Parametric Curve and Surface Modeling
Curve & Surface.
CS 445 / 645 Introduction to Computer Graphics
CSE 167 [Win 17], Lecture 9: Curves 1 Ravi Ramamoorthi
© 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.
Introduction to Parametric Curve and Surface Modeling
Presentation transcript:

Curves University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2013 Tamara Munzner

2 Reading FCG Chap 15 Curves Ch 13 2nd edition

3 Curves

4 Parametric Curves parametric form for a line: x, y and z are each given by an equation that involves: parameter t some user specified control points, x 0 and x 1 this is an example of a parametric curve

5 Splines a spline is a parametric curve defined by control points term “spline” dates from engineering drawing, where a spline was a piece of flexible wood used to draw smooth curves control points are adjusted by the user to control shape of curve

6 Splines - History draftsman used ‘ducks’ and strips of wood (splines) to draw curves wood splines have second- order continuity, pass through the control points a duck (weight) ducks trace out curve

7 Hermite Spline hermite spline is curve for which user provides: endpoints of curve parametric derivatives of curve at endpoints parametric derivatives are dx/dt, dy/dt, dz/dt more derivatives would be required for higher order curves

8 Basis Functions a point on a Hermite curve is obtained by multiplying each control point by some function and summing functions are called basis functions

9 Sample Hermite Curves

10 Bézier Curves similar to Hermite, but more intuitive definition of endpoint derivatives four control points, two of which are knots

11 Bézier Curves derivative values of Bezier curve at knots dependent on adjacent points

12 Bézier Blending Functions look at blending functions family of polynomials called order-3 Bernstein polynomials C(3, k) t k (1-t) 3-k ; 0<= k <= 3 all positive in interval [0,1] sum is equal to 1

13 Bézier Blending Functions every point on curve is linear combination of control points weights of combination are all positive sum of weights is 1 therefore, curve is a convex combination of the control points

14 Bézier Curves curve will always remain within convex hull (bounding region) defined by control points

15 Bézier Curves interpolate between first, last control points 1 st point’s tangent along line joining 1 st, 2 nd pts 4 th point’s tangent along line joining 3 rd, 4 th pts

16 Comparing Hermite and Bézier Bézier Hermite

17 Rendering Bezier Curves: Simple evaluate curve at fixed set of parameter values, join points with straight lines advantage: very simple disadvantages: expensive to evaluate the curve at many points no easy way of knowing how fine to sample points, and maybe sampling rate must be different along curve no easy way to adapt: hard to measure deviation of line segment from exact curve

18 Rendering Beziers: Subdivision a cubic Bezier curve can be broken into two shorter cubic Bezier curves that exactly cover original curve suggests a rendering algorithm: keep breaking curve into sub-curves stop when control points of each sub-curve are nearly collinear draw the control polygon: polygon formed by control points

19 Sub-Dividing Bezier Curves step 1: find the midpoints of the lines joining the original control vertices. call them M 01, M 12, M 23 P0P0 P1P1 P2P2 P3P3 M 01 M 12 M 23

20 Sub-Dividing Bezier Curves step 2: find the midpoints of the lines joining M 01, M 12 and M 12, M 23. call them M 012, M 123 P0P0 P1P1 P2P2 P3P3 M 01 M 12 M 23 M 012 M 123

21 Sub-Dividing Bezier Curves step 3: find the midpoint of the line joining M 012, M 123. call it M 0123 P0P0 P1P1 P2P2 P3P3 M 01 M 12 M 23 M 012 M 123 M 0123

22 Sub-Dividing Bezier Curves curve P 0, M 01, M 012, M 0123 exactly follows original from t=0 to t=0.5 curve M 0123, M 123, M 23, P 3 exactly follows original from t=0.5 to t=1 P0P0 P1P1 P2P2 P3P3 M 01 M 12 M 23 M 012 M 123 M 0123

23 Sub-Dividing Bezier Curves P0P0 P1P1 P2P2 P3P3 continue process to create smooth curve

24 de Casteljau’s Algorithm can find the point on a Bezier curve for any parameter value t with similar algorithm for t=0.25, instead of taking midpoints take points 0.25 of the way P0P0 P1P1 P2P2 P3P3 M 01 M 12 M 23 t=0.25 demo:

25 Longer Curves a single cubic Bezier or Hermite curve can only capture a small class of curves at most 2 inflection points one solution is to raise the degree allows more control, at the expense of more control points and higher degree polynomials control is not local, one control point influences entire curve better solution is to join pieces of cubic curve together into piecewise cubic curves total curve can be broken into pieces, each of which is cubic local control: each control point only influences a limited part of the curve interaction and design is much easier

26 Piecewise Bezier: Continuity Problems demo:

27 Continuity when two curves joined, typically want some degree of continuity across knot boundary C0, “C-zero”, point-wise continuous, curves share same point where they join C1, “C-one”, continuous derivatives C2, “C-two”, continuous second derivatives

28 Geometric Continuity derivative continuity is important for animation if object moves along curve with constant parametric speed, should be no sudden jump at knots for other applications, tangent continuity suffices requires that the tangents point in the same direction referred to as G 1 geometric continuity curves could be made C 1 with a re-parameterization geometric version of C 2 is G 2, based on curves having the same radius of curvature across the knot

29 Achieving Continuity Hermite curves user specifies derivatives, so C 1 by sharing points and derivatives across knot Bezier curves they interpolate endpoints, so C 0 by sharing control pts introduce additional constraints to get C 1 parametric derivative is a constant multiple of vector joining first/last 2 control points so C 1 achieved by setting P 0,3 =P 1,0 =J, and making P 0,2 and J and P 1,1 collinear, with J-P 0,2 =P 1,1 -J C 2 comes from further constraints on P 0,1 and P 1,2 leads to...

30 B-Spline Curve start with a sequence of control points select four from middle of sequence (p i-2, p i-1, p i, p i+1 ) Bezier and Hermite goes between p i-2 and p i+1 B-Spline doesn’t interpolate (touch) any of them but approximates the going through p i-1 and p i P0P0 P1P1 P3P3 P2P2 P4P4 P5P5 P6P6

31 B-Spline by far the most popular spline used C 0, C 1, and C 2 continuous demo:

32 B-Spline locality of points