#8: Curves and Curved Surfaces CSE167: Computer Graphics Instructor: Ronen Barzel UCSD, Winter 2006.

Slides:



Advertisements
Similar presentations
Curves Jim Van Verth Essential Math for Games Animation Problem: want to replay stored set of transformations  Generated by.
Advertisements

College of Computer and Information Science, Northeastern UniversityApril 12, CS G140 Graduate Computer Graphics Prof. Harriet Fell Spring 2007 Lecture.
Computer Graphics (Spring 2008) COMS 4160, Lecture 6: Curves 1
CS 445 / 645 Introduction to Computer Graphics Lecture 23 Bézier Curves Lecture 23 Bézier Curves.
© University of Wisconsin, CS559 Spring 2004
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
Cubic Curves CSE167: Computer Graphics Instructor: Steve Rotenberg UCSD, Fall 2006.
Overview June 9- B-Spline Curves June 16- NURBS Curves June 30- B-Spline Surfaces.
Cubic Curves CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2005.
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
Outline for today Inverses of Transforms Curves overview Bézier curves.
1 Introduction Curve Modelling Jack van Wijk TU Eindhoven.
Lecture 29 of 42 Bezier Curves and Splines Wednesday, 02 April 2008
MIT EECS 6.837, Durand and Cutler Curves & Surfaces.
Computer graphics & visualization Key frame Interpolation.
Informationsteknologi Monday, December 10, 2007Computer Graphics - Class 161 Today’s class Curve fitting Evaluators Surfaces.
Surfaces Chiew-Lan Tai. Surfaces 2 Reading Required Hills Section Hearn & Baker, sections 8.11, 8.13 Recommended Sections 2.1.4, , 3D Computer.
CSCE 441 Computer Graphics: Keyframe Animation/Smooth Curves Jinxiang Chai.
09/04/02 Dinesh Manocha, COMP258 Bezier Curves Interpolating curve Polynomial or rational parametrization using Bernstein basis functions Use of control.
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;
Bezier and Spline Curves and Surfaces Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico.
Subdivision Primer CS426, 2000 Robert Osada [DeRose 2000]
Computer Graphics 12: Spline Representations
Bezier and Spline Curves and Surfaces CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.
Splines III – Bézier Curves
Curves and Surfaces CSE3AGR - Paul Taylor Polynomials of Degree n Degree is equal to the highest exponent of a term. Higher exponents result in.
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.
Computer Graphics: Programming, Problem Solving, and Visual Communication Steve Cunningham California State University Stanislaus and Grinnell College.
This Week Week Topic Week 1 Week 2 Week 3 Week 4 Week 5
Introduction to Computer Graphics with WebGL
Review of Interpolation. A method of constructing a function that crosses through a discrete set of known data points.
Vector Computer Graphic. Vector entities Line Circle, Ellipse, arc,… Curves: Spline, Bezier’s curve, … … Areas Solids Models.
1 Dr. Scott Schaefer Coons Patches and Gregory Patches.
CS 376 Introduction to Computer Graphics 04 / 20 / 2007 Instructor: Michael Eckmann.
Chapter VI Parametric Curves and Surfaces
June D Object Representation Shmuel Wimer Bar Ilan Univ., School of Engineering.
Computer Graphics Representing Curves and Surfaces.
CS559: Computer Graphics Lecture 19: Curves Li Zhang Spring 2008.
Computer Programming (TKK-2144) 13/14 Semester 1 Instructor: Rama Oktavian Office Hr.: M.13-15, W Th , F
CS 376 Introduction to Computer Graphics 04 / 25 / 2007 Instructor: Michael Eckmann.
L5 – Curves in GIS NGEN06 & TEK230: Algorithms in Geographical Information Systems by: Sadegh Jamali (source: Lecture notes in GIS, Lars Harrie) 1 L5-
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.
Review CSE167: Computer Graphics Instructor: Steve Rotenberg UCSD, Fall 2005.
Designing Parametric Cubic Curves 1. 2 Objectives Introduce types of curves ­Interpolating ­Hermite ­Bezier ­B-spline Analyze their performance.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
CS 450: Computer Graphics PARAMETRIC SPLINES AND SURFACES
Foundations of Computer Graphics (Spring 2012) CS 184, Lecture 12: Curves 1
Computing & Information Sciences Kansas State University Lecture 30 of 42CIS 636/736: (Introduction to) Computer Graphics Lecture 30 of 42 Wednesday, 09.
CS552: Computer Graphics Lecture 19: Bezier Curves.
CS552: Computer Graphics Lecture 18: Representing Cubic Splines.
Object Modeling: Curves and Surfaces CEng 477 Introduction to Computer Graphics.
CSCI480/582 Lecture 9 Chap.2.2 Cubic Splines – Hermit and Bezier Feb, 11, 2009.
Lecture 24: Surface Representation
COMPUTER GRAPHICS CHAPTERS CS 482 – Fall 2017 SPLINES
© University of Wisconsin, CS559 Spring 2004
CS5500 Computer Graphics May 11, 2006
CSCE 441 Computer Graphics: Keyframe Animation/Smooth Curves
CSE 167 [Win 17], Lecture 11: Curves Problems Ravi Ramamoorthi
CSE 167 [Win 17], Lecture 9: Curves 1 Ravi Ramamoorthi
Designing Parametric Cubic Curves
Spline Interpolation Class XVII.
UNIT-5 Curves and Surfaces.
Coons Patches and Gregory Patches
Designing Parametric Cubic Curves
Spline representation. ❖ A spline is a flexible strip used to produce a smooth curve through a designated set of points. ❖ Mathematically describe such.
Overview June 9- B-Spline Curves June 16- NURBS Curves
Presentation transcript:

#8: Curves and Curved Surfaces CSE167: Computer Graphics Instructor: Ronen Barzel UCSD, Winter 2006

1 Outline for today Summary of Bézier curves Piecewise-cubic curves, B-splines Surface Patches

2 Curves: Summary Use a few control points to describe a curve in space Construct a function x(t) moves a point from start to end of curve as t goes from 0 to 1 tangent to the curve is given by derivative x’(t) We looked at: Linear -- trivial case, just to get oriented Bézier curves -- in particular, cubic p0p0 p1p1 p0p0 p1p1 p2p2 p0p0 p1p1 p2p2 p3p3 LinearQuadraticCubic

3 Linear Interpolation: Summary Given two points p 0 and p 1 “Curve” is line segment between them p0p0 p1p1 t=1.. 0<t<1 t=0

4 Cubic Bézier Curve: Summary Given four points p 0, p 1, p 2, p 3 curve interpolates the endpoints intermediate points adjust shape: “tangent handles” Recursive geometric construction de Casteljau algorithm Three ways to express curve Weighted average of the control points: Bernstein polynomials Polynomial in t Matrix form x p0p0 p1p1 p2p2 p3p3

5 Notice: Weights always add to 1 B 0 and B 3 go to 1 -- interpolating the endpoints Cubic Bézier: Bernstein Polynomials

6 Cubic Bézier: Polynomial, Matrix, Notation

7 Tangent to Cubic Bézier

8 n th -order Bézier curve

9 Evaluate/draw curves by: Sampling uniformly in t Adaptive/Recursive Subdivision x (0.0) x (0.25) x (0.5) x (0.75) x(t) x (1.0)

10 Outline for today Summary of Bézier curves Piecewise-cubic curves, B-splines Surface Patches

11 More control points Cubic Bézier curve limited to 4 control points Cubic curve can only have one inflection Need more control points for more complex curves With k points, could define a k-1 order Bézier But it’s hard to control and hard to work with The intermediate points don’t have obvious effect on shape Changing any control point can change the whole curve Want local support: each control point only influences nearby portion of curve

12 Piecewise Curves With a large number of points… Construct a curve that is a sequence of simple (low-order) curves end-to-end Known as a piecewise polynomial curve E.g., a sequence of line segments: a piecewise linear curve E.g., a sequence of cubic curve segments: a piecewise cubic curve In this case, piecewise Bézier

13 Continuity For the whole curve to look smooth, we need to consider continuity: C 0 continuity: no gaps. The segments must match at the endpoints C 1 continuity: no corners. The tangents must match at the endpoints C 2 continuity: tangents vary smoothly. (makes smoother curves.) Note also: G 1, G 2, etc. continuity Looks at geometric continuity without considering parametric continuity Roughly, means that the tangent directions must match, but not the magnitudes Gets around “bad” parametrizations Often it’s what we really want, but it’s harder to compute

14 Constructing a single curve from many Given N curve segments: x 0 (t), x 1 (t), …, x N-1 (t) Each is parameterized for t from 0 to 1 Define a new curve, with u from 0 to N: Alternate: u also goes from 0 to 1

15 Given N+1 points p 0, p 1, …, p N Define curve: N+1 points define N linear segments x(i)=p i C 0 continuous by construction G 1 at p i when p i-1, p i, p i+1 are collinear C 1 at p i when p i -p i-1 = p i+1 -p i Piecewise-Linear curve p0p0 p1p1 p2p2 p3p3 p4p4 p5p5 p6p6 x(1.5) x(5.25) x(2.9)

16 Piecewise Bézier curve: segments x 0 (t) x 1 (t) x 2 (t) x 3 (t) p0p0 p1p1 p2p2 p3p3 p4p4 p5p5 p6p6 p7p7 p8p8 p9p9 p 10 p 11 p 12

17 Piecewise Bézier curve x 0 (t) x 1 (t) x 2 (t) x 3 (t) x(3.5) x(8.75)

18 Piecewise Bézier curve 3N+1 points define N Bézier segments x(i)=p 3i C 0 continuous by construction G 1 continuous at p 3i when p 3i-1, p 3i, p 3i+1 are collinear C 1 continuous at p 3i when p 3i -p 3i-1 = p 3i+1 -p 3i C 2 is harder to get p0p0 p0p0 p1p1 p2p2 P3P3 P3P3 p2p2 p1p1 p4p4 p5p5 p6p6 p6p6 p5p5 p4p4 C 1 continuous C 1 discontinuous

19 Piecewise Bézier curves Used often in 2D drawing programs Inconveniences: Must have 4 or 7 or 10 or 13 or … (1 plus a multiple of 3) points Not all points are the same UI inconvenience: Interpolate, approximate, approximate, interpolate, … Math inconvenience: Different weight functions for each point UI solution: “Bézier Handles” Math solution: B-spline

20 UI for Bézier Curve Handles Bézier segment points: Interpolating points presented normally as curve control points Approximating points presented as “handles” on the curve points UI features: All curve control points are the same Can have option to enforce C 1 continuity (

21 Blending Functions Evaluate using “Sliding window” Local support: Window spans 4 points Window contains 4 different Bernstein polynomials Window moves forward by 3 units when u passes to next Bézier segment Evaluate matrix in window:

22 B-spline blending functions Still a sliding “window”, but use same weight function for every point Weight function goes to 0 outside the 4-point neighborhood local support -- each spot on curve only affected by neighbors Shift “window” by 1, not by 3 No discrete segments: every point is the same

23 B-Spline Widely used for surface modeling Intuitive behavior Local support: curve only affected by nearby control points Techniques for inserting new points, joining curves, etc. Doesn’t interpolate endpoints Not a problem for closed curves Sometimes use Bézier blending at the ends But wait, there’s more! Rational B-Splines Non-uniform Rational B-Splines

24 Big drawback of all cubic curves: can’t make circles! Nor ellipses, nor arcs. I.e. can’t make conic sections Rational B-spline: Add a weight to each point Homogeneous point: use w Weight causes point to “pull” more (or less) With proper points & weights, can do circles Rational B-splines widely used for surface modeling Need UI to adjust the weight Often hand-drawn curves are unweighted, but automatically-generated curves for circles etc. have weights Rational Curves pull more pull less

25 Non-Uniform Rational B-Spline (NURBS) Don’t assume that control points are equidistant in u Introduce knot vector that describes the separation of the points Features… Allows tighter bends or corners Allows corners (C 1 discontinuity) Certain knot values turn out to give a Bézier segment Allows mixing interpolating (e.g. at endpoints) and approximating Math is messier Read about it in Buss Very widely used for surface modeling Can interactively create as if uniform Techniques for cutting, inserting, merging, filleting, revolving, etc…

26 Outline for today Summary of Bézier curves Piecewise-cubic curves, B-splines Surface Patches

27 Curved Surfaces Remember the overview of curves: Described by a series of control points A function x(t) Segments joined together to form a longer curve Same for surfaces, but now two dimensions Described by a mesh of control points A function x(u,v) Patches joined together to form a bigger surface

28 x(u,v) describes a point in space for any given (u,v) pair u,v each range from 0 to 1 Rectangular topology Parametric curves: For fixed u 0, have a v curve x(u 0,v) For fixed v 0, have a u curve x(u,t 0 ) For any point on the surface, there are a pair of parametric curves that go through point Parametric Surface Patch u v x y z x(0.8,0.7) u v x(0.4,v) x(u,0.25)

29 Parametric Surface Tangents The tangent to a parametric curve is also tangent to the surface For any point on the surface, there are a pair of (parametric) tangent vectors Note: not necessarily perpendicular to each other u v

30 Parametric Surface Normal Get the normal to a surface at any point by taking the cross product of the two parametric tangent vectors at that point. Order matters!

31 Polynomial Surface Patches x(s,t) is typically polynomial in both s and t Bilinear: Bicubic:

32 Bilinear Patch (control mesh) A bilinear patch is defined by a control mesh with four points p 0, p 1, p 2, p 3 AKA a (possibly-non-planar) quadrilateral Compute x(u,v) using a two-step construction p0p0 p1p1 p2p2 p3p3 u v

33 Bilinear Patch (step 1) For a given value of u, evaluate the linear curves on the two u- direction edges Use the same value u for both: q 0 =Lerp(u,p 0, p 1 ) q 1 =Lerp(u,p 0, p 1 ) p0p0 p1p1 p2p2 p3p3 u v q0q0 q1q1

34 Bilinear Patch (step 2) Consider that q 0, q 1 define a line segment. Evaluate it using v to get x p0p0 p1p1 p2p2 p3p3 u v q0q0 q1q1 x

35 Bilinear Patch (full) Combining the steps, we get the full formula p0p0 p1p1 p2p2 p3p3 u v q0q0 q1q1 x

36 Bilinear Patch (other order) Try the other order: evaluate first in the v direction p0p0 p1p1 p2p2 p3p3 u v r0r0 r1r1

37 Bilinear Patch (other order, step 2) Consider that r 0, r 1 define a line segment. Evaluate it using u to get x p0p0 p1p1 p2p2 p3p3 u v r0r0 r1r1 x

38 Bilinear Patch (other order, full) The full formula for the v direction first: p0p0 p1p1 p2p2 p3p3 u v r0r0 r1r1 x

39 Bilinear Patch (either order) It works out the same either way! p0p0 p1p1 p2p2 p3p3 u v q0q0 q1q1 r0r0 r1r1 x

40 Bilinear Patch p0p0 p1p1 p2p2 p3p3 p0p0 p1p1 p2p2 p3p3

41 Bilinear patch formulations

42 Bilinear patch: Matrix form

43 Bilinear Patch Properties of the bilinear patch: Interpolates the control points The boundaries are straight line segments connecting the control points If the all 4 points of the control mesh are co-planar, the patch is flat If the points are not coplanar, get a curved surface saddle shape, AKA hyperbolic paraboloid The parametric curves are all straight line segments! a (doubly) ruled surface: has (two) straight lines through every point Kinda nifty, but not terribly useful as a modeling primitive p0p0 p1p1 p2p2 p3p3 p0p0 p1p1 p2p2 p3p3

44 Bézier Control Mesh A bicubic patch has a grid of 4x4 control points, p 0 through p 15 Defines four Bézier curves along u: p 0,1,2,3 ; p 4,5,6,7 ; p 8,9,10,11 ; p 12,13,14,15 Defines four Bézier curves along v: p 0,4,8,12 ; p 1,6,9,13 ; p 2,6,10,14 ; p 3,7,11,15 Evaluate using same approach as bilinear… p0p0 p1p1 p2p2 p3p3 p4p4 p5p5 p6p6 p7p7 p8p8 p9p9 p 10 p 11 p 12 p 13 p 14 p 15 u v

45 Bézier patch (step 1) Evaluate all four of the u-direction Bézier curves at u, to get points q 0 … q 3 p0p0 p1p1 p2p2 p3p3 p4p4 p5p5 p6p6 p7p7 p8p8 p9p9 p 10 p 11 p 12 p 13 p 14 p 15 u v q0q0 q1q1 q2q2 q3q3

46 Bézier patch (step 2) Consider that points q 0 … q 3 define a Bézier curve; evaluate it at v p0p0 p1p1 p2p2 p3p3 p4p4 p5p5 p6p6 p7p7 p8p8 p9p9 p 10 p 11 p 12 p 13 p 14 p 15 u v q0q0 q1q1 q2q2 q3q3 x

47 Bézier patch (either order) Sure enough, you get the same result in either order. p0p0 p1p1 p2p2 p3p3 p4p4 p5p5 p6p6 p7p7 p8p8 p9p9 p 10 p 11 p 12 p 13 p 14 p 15 u v r0r0 r1r1 r2r2 r3r3 x q0q0 q1q1 q2q2 q3q3

48 Bézier patch Properties: Convex hull: any point on the surface will fall within the convex hull of the control points Interpolates 4 corner points. Approximates other 12 points, which act as “handles” The boundaries of the patch are the Bézier curves defined by the points on the mesh edges The parametric curves are all Bézier curves

49 Evaluating a Bézier patch Most straightforward: follow the 2-step construction Lets you evaluate patch using existing methods for evaluting curves Won’t write out the weighted average or polynomial forms But can do matrix form…

50 Bézier patch, matrix form

51 Bézier patch, matrix form C x stores the coefficients of the bicubic equation for x C y stores the coefficients of the bicubic equation for y C z stores the coefficients of the bicubic equation for z G x stores the geometry ( x components of the control points) G y stores the geometry ( y components of the control points) G z stores the geometry ( z components of the control points) B Bez is the basis matrix (Bézier basis) U and V are the vectors formed from the powers of u and v Compact notation Leads to efficient method of computation Can take advantage of hardware support for 4x4 matrix arithmetic

52 Tangents of Bézier patch The “q” and “r” curves we constructed are actually the parametric curves at x(u,v) Remember, tangents to surface = tangents to parametric curves So we can compute the tangents using the same construction curves Notice that the tangent in the u direction is for the curve that varies in u, i.e. for the “r” curve; Similarly, the tangent in the v direction is for the “q” curve. (Get the normal as usual by taking cross product of the tangents) p0p0 p1p1 p2p2 p3p3 p4p4 p5p5 p6p6 p7p7 p8p8 p9p9 p 10 p 11 p 12 p 13 p 14 p 15 u v r0r0 r1r1 r2r2 r3r3 x q0q0 q1q1 q2q2 q3q3

53 Tangents of Bézier patch, construction p0p0 p1p1 p2p2 p3p3 p4p4 p5p5 p6p6 p7p7 p8p8 p9p9 p 10 p 11 p 12 p 13 p 14 p 15 u v r0r0 r1r1 r2r2 r3r3 x q0q0 q1q1 q2q2 q3q3

54 Tangents of Bézier patch, matrix form The matrix form makes it easy to evaluate the tangents directly :

55 Tessellating a Bézier patch Uniform tessellation is most straightforward Evaluate points on a grid Compute tangents at each point, take cross product to get per-vertex normal Draw triangle strips (several choices of direction) Adaptive tessellation/recursive subdivision Potential for “cracks” if patches on opposite sides of an edge divide differently Tricky to get right, but can be done.

56 Building a surface from Bézier patches Lay out grid of adjacent meshes For C 0 continuity, must share points on the edge Each edge of a Bézier patch is a Bézier curve based only on the edge mesh points So if adjacent meshes share edge points, the patches will line up exactly But we have a crease…

57 C 1 continuity across Bézier edges We want the parametric curves that cross each edge to have C 1 continuity So the handles must be equal-and-opposite across the edge:

58 Modeling with Bézier patches Original Utah teapot specified as Bézier Patches

59 Modeling Headaches Original Teapot isn’t “watertight” spout & handle intersect with body no bottom hole in spout gap between lid and body Rectangular topology makes it hard to: join or abut curved pieces build surfaces with holes build surfaces with awkward topology or structure

60 Advanced surface modeling B-spline patches For the same reason as using B-spline curves More uniform behavior Better mathematical properties Doesn’t interpolate any control points

61 Advanced surface modeling NURBS surfaces. Can take on more shapes conic sections kinks Can blend, merge, fillet, … Still has rectangular topology, though

62 Advanced surface modeling Trim curves: cut away part of surface Implement as part of tessellation/rendering And/or construct new geometry

63 Subdivision Surfaces Arbitrary mesh, not rectangular topology Not parametric No u,v parameters Can make surfaces with arbitrary topology or connectivity Work by recursively subdividing mesh faces Per-vertex annotation for weights, corners, creases Used in particular for character animation: One surface rather than collection of patches Can deform geometry without creating cracks

64 Done Next class: Scan Conversion Midterm review Class after that: Midterm!