Question? Leave a message!




Bézier Curves and Splines

Bézier Curves and Splines
6.837 Computer Graphics Bézier Curves and Splines Wojciech Matusik MIT CSAIL 6.837 – Matusik vectorportal.com Before We Begin • Anything on your mind concerning Assignment 0 • Any questions about the course • Assignment 1 (Curves Surfaces) • Linear algebra review session 2 Today • Smooth curves in 2D – Useful in their own right – Provides basis for surface editing This image is in the public domain Source:Wikimedia Commons 3 Modeling 1D Curves in 2D • Polylines – Sequence of vertices connected by straight line segments – Useful, but not for smooth curves – This is the representation that usually gets drawn in the end (a curve is converted into a polyline) • Smooth curves – How do we specify them – A little harder (but not too much) 4 Splines • A type of smooth curve in 2D/3D • Many different uses – 2D illustration (e.g., Adobe Illustrator) – Fonts (e.g., PostScript, TrueType) – 3D modeling – Animation: trajectories • In general: interpolation ACM © 1987 “Principles of and approximation traditional animation applied to 3D computer animation” © ACM. All rights reserved. This content is excluded from our Creative Commons license. For more information, see http://ocw.mit.edu/help/faqfairuse/. 5 Demo 6 How Many Dimensions 7 How Many Dimensions This curve lies on the 2D plane, but is itself 1D. 8 How Many Dimensions This curve lies on You can just as well the 2D plane, define 1D curves in but is itself 1D. 3D space. 9 Two Definitions of a Curve • A continuous 1D set of points in 2D (or 3D) • A mapping from an interval S onto the plane – That is, P(t) is the point of the curve at parameter t • Big differences – It is easy to generate points on the curve from the 2nd – The second definition can describe trajectories, the speed at which we move on the curve 10 General Principle of Splines • User specifies control points • We will interpolate the control points by a smooth curve – The curve is completely determined by the control points. 11 See http://en.wikipedia.org/wiki/Flatspline Physical Splines Courtesy of The Antique Boat Museum. 12Two Application Scenarios • Approximation/interpolation – We have “data points”, how can we interpolate – Important in many applications • User interface/modeling – What is an easy way to specify a smooth curve – Our main perspective today. Image courtesy of SaphireS on Wikimedia Commons. License: CCBY SA. This content is excluded from our Creative Commons license. For more information, see http://ocw.mit.edu/help/faqfairuse/. 13 Questions 14 Splines • Specified by a few control points – Good for UI – Good for storage • Results in a smooth parametric curve P(t) – Just means that we specify x(t) and y(t) – In practice: loworder polynomials, chained together – Convenient for animation, where t is time – Convenient for tessellation because we can discretize t and approximate the curve with a polyline 15 Tessellation • It is easy to rasterize mathematical line segments into pixels – OpenGL and the graphics hardware can do it for you • But polynomials and other parametric functions are harder Image courtesy of Phrood on Wikimedia Commons. License: CCBYSA.This content is excluded from our Creative Commons license. For moreinformation, see http://ocw.mit.edu/help/faqfairuse/. 6.837 – Durand 16 Tessellation tn t2 t1 To display P(t), discretize it at discrete ts t0 17 Tessellation tn t2 t1 It’s clear that adding more points will get us closer to the curve. t0 18 Tessellation tn t2 t1 It’s clear that adding more points will get us closer to the curve. t0 19 Interpolation vs. Approximation • Interpolation – Goes through all specified points – Sounds more logical Interpolation • Approximation – Does not go through all points Approximation 20 Interpolation vs. Approximation • Interpolation – Goes through all specified points – Sounds more logical Interpolation – But can be more unstable • Approximation – Does not go through all points – Turns out to be convenient Approximation • We will do something in between. 21 Questions 22 Cubic Bézier Curve • User specifies 4 control points P1 ... P4 • Curve goes through (interpolates) the ends P1, P4 • Approximates the two other ones • Cubic polynomial 23 Cubic Bézier Curve That is, • P(t) = (1t)³ P1 + 3t(1t)² P2 + 3t²(1t) P3 + t³ P4 24 Cubic Bézier Curve Verify what happens • P(t) = (1t)³ P1 for t=0 and t=1 + 3t(1t)² P2 + 3t²(1t) P3 + t³ P4 25 Cubic Bézier Curve • 4 control points • Curve passes through first last control point Courtesy of Seth Teller. Used with permission. 26 Cubic Bézier Curve • 4 control points • Curve passes through first last control point • Curve is tangent at P1 to (P1P2) and at P4 to (P4P3) A Bézier curve is bounded by the convex hull of its control points. 27 Questions 28 Why Does the Formula Work • Explanation 1: – Magic • Explanation 2: – These are smart weights that describe the influence of each control point • Explanation 3: – It is a linear combination of basis polynomials. 29 Weights P(t) = (1t)³ P1 • P(t) is a weighted + 3t(1t)² P2 + 3t²(1t) P3 combination of the 4 + t³ P4 control points with weights: – B1(t)=(1t)³ – B2(t)=3t(1t)² – B3(t)=3t²(1t) – B4(t)=t³ • First, P1 is the most influential point, then P2, P3, and P4 30 Weights P(t) = (1t)³ P1 • P2 and P3 never have full + 3t(1t)² P2 + 3t²(1t) P3 influence + t³ P4 – Not interpolated 31 Questions 32 Why Does the Formula Work • Explanation 1: – Magic • Explanation 2: – These are smart weights that describe the influence of each control point • Explanation 3: – It is a linear combination of basis polynomials. – The opposite perspective: control points are the weights of polynomials 33 Why Study Splines as Vector Space • Understand relationships between types of splines – Conversion • Express what happens when a spline curve is transformed by an affine transform (rotation, translation, etc.) • Cool simple example of nontrivial vector space • Important to understand for advanced methods such as finite elements 34 Usual Vector Spaces • In 3D, each vector has three components x, y, z • But geometrically, each vector is actually the sum j k i • i, j, k are basis vectors • Vector addition: just add components • Scalar multiplication: just multiply components 35 Polynomials as a Vector Space • Polynomials • Can be added: just add the coefficients • Can be multiplied by a scalar: multiply the coefficients 36 Polynomials as a Vector Space • Polynomials • In the polynomial vector space, 1, t, ..., tn are the basis vectors, a0, a1, ..., an are the components 37 Questions 38 Subset of Polynomials: Cubic • Closed under addition scalar multiplication – Means the result is still a cubic polynomial (verify) • Cubic polynomials also compose a vector space – A 4D subspace of the full space of polynomials • The x and y coordinates of cubic Bézier curves belong to this subspace as functions of t. 39 Basis for Cubic Polynomials More precisely: What’s a basis j In 3D k i • A set of “atomic” vectors – Called basis vectors – Linear combinations of basis vectors span the space • i.e. any cubic polynomial is a sum of those basis cubics • Linearly independent – Means that no basis vector can be obtained from the others by linear combination • Example: i, j, i+j is not a basis (missing k direction) 40 Canonical Basis for Cubics 1 t t2 t3 • Any cubic polynomial is a linear combination of these: a0+a1t+a2t2+a3t3 = a01+a1t+a2t2+a3t3 • They are linearly independent – Means you cannot write any of the four monomials as a linear combination of the others. (You can try.) 41 Different Basis 2D examples • For example: – 1, 1+t, 1+t+t2, 1+tt2+t3 – t3, t3+t2, t3+t, t3+1 • These can all be obtained from by linear combination • Infinite number of possibilities, just like you have an infinite number of bases to span R2 42 MatrixVector Notation “Canonical” • For example: Changeofbasis monomial 1, 1+t, 1+t+t², 1+tt²+t³ matrix basis t³, t³+t², t³+t, t³+1 These relationships hold for each value of t 43MatrixVector Notation “Canonical” • For example: Changeofbasis monomial 1, 1+t, 1+t+t2, 1+tt2+t3 matrix basis t3, t3+t2, t3+t, t3+1 Not any matrix will do If it’s singular, the basis set will be linearly dependent, i.e., redundant and incomplete. 44 Bernstein Polynomials • For Bézier curves, the basis polynomials/vectors are Bernstein polynomials • For cubic Bezier curve: B1(t)=(1t)³ B2(t)=3t(1t)² B3(t)=3t²(1t) B4(t)=t³ (careful with indices, many authors start at 0) • Defined for any degree 45 Properties of Bernstein Polynomials • for all 0 t 1 • Sum to 1 for every t – called partition of unity • These two together are the reason why Bézier curves lie within convex hull • B1(0) =1 – Bezier curve interpolates P1 • B4(1) =1 – Bezier curve interpolates P4 46 Bézier Curves in Bernstein Basis • P(t) = P1B1(t) + P2B2(t) + P3B3(t) + P4B4(t) – Pi are 2D points (xi, yi) • P(t) is a linear combination of the control points with weights equal to Bernstein polynomials at t • But at the same time, the control points (P1, P2, P3, P4) are the “coordinates” of the curve in the Bernstein basis – In this sense, specifying a Bézier curve with control points is exactly like specifying a 2D point with its x and y coordinates. 47 Two Different Vector Spaces • The plane where the curve lies, a 2D vector space • The space of cubic polynomials, a 4D space • Don’t be confused • The 2D control points can be replaced by 3D points – this yields space curves. – The math stays the same, just add z(t). • The cubic basis can be extended to higherorder polynomials – Higherdimensional vector space – More control points 48 Questions 49 Change of Basis • B1(t)=(1t)³ • How do we go from Bernstein basis • B2(t)=3t(1t)² to the canonical monomial basis • B3(t)=3t²(1t) 1, t, t², t³ and back • B4(t)=t³ – With a matrix New basis vectors 50 How You Get the Matrix Expand these out Cubic Bernstein: and collect powers of t. The coefficients are the entries • B1(t)=(1t)³ in the matrix B • B2(t)=3t(1t)² • B3(t)=3t²(1t) • B4(t)=t³ 51 Change of Basis, Other Direction • Given B1...B4, how to get back to canonical 1, t, t², t³ 52 Change of Basis, Other Direction That’s right, with the inverse matrix • Given B1...B4, how to get back to canonical 1, t, t², t³ 53 Recap • Cubic polynomials form a 4D vector space. • Bernstein basis is canonical for Bézier. – Can be seen as influence function of data points – Or data points are coordinates of the curve in the Bernstein basis • We can change between basis with matrices. 54 Questions 55 More MatrixVector Notation Bernstein polynomials (4x1 vector) matrix of point on curve control points (2 x 4) (2x1 vector) 56 Flashback 57 Cubic Bézier in Matrix Notation point on curve (2x1 vector) Canonical monomial basis “Geometry matrix” “Spline matrix” of control points P1..P4 (Bernstein) (2 x 4) 58 General Spline Formulation • Geometry: control points coordinates assembled into a matrix (P1, P2, …, Pn+1) • Spline matrix: defines the type of spline – Bernstein for Bézier • Power basis: the monomials (1, t, ..., tn) • Advantage of general formulation – Compact expression – Easy to convert between types of splines – Dimensionality (plane or space) does not really matter 59 Questions 60 A Cubic Only Gets You So Far • What if you want more control 61 HigherOrder Bézier Curves • 4 control points • Bernstein Polynomials as the basis functions – For polynomial of order n, the ith basis function is Courtesy of Seth Teller. Used with permission. • Every control point affects the entire curve – Not simply a local effect – More difficult to control for modeling • You will not need this in this class 62 Subdivision of a Bezier Curve • Can we split a Bezier curve in the middle into two Bézier curves – This is useful for adding detail – It avoids using nasty higherorder curves 63 Subdivision of a Bezier Curve • Can we split a Bezier curve in the middle into two Bézier curves – The resulting curves are again a cubic (Why A cubic in t is also a cubic in 2t) – Hence it must be representable using the Bernstein basis. So yes, we can t1=2t t2=2t0.5 cubic t=0 t=0.5 t=1 64 De Casteljau Construction • Take the middle point of each of the 3 segments • Construct the two segments joining them • Take the middle of those two new segments • Join them • Take the middle point P’’’ P’2 P’’1 P’’2 P’1 P’’’ P’3 65 Result of Split in Middle • The two new curves are defined by – P1, P’1, P’’1, and P’’’ – P’’’, P’’2, P’3, and P4 • Together they exactly replicate the original curve P’2 – Originally 4 control points, now 7 (more control) P’’1 P’’2 P’1 P’’’ P’3 P4 P1 66 Sanity Check • Do we actually get the middle point • B1(t)=(1t)³ • B2(t)=3t(1t)² • B3(t)=3t²(1t) • B4(t)=t³ P’2 P’’1 P’’2 P’1 P’’’ P’3 ✔ 67 De Casteljau Construction • Actually works to construct a point at any t, not just 0.5 • Just subdivide the segments with ratio (1t), t (not in the middle) t t t t t t 68 Recap • Bezier curves: piecewise polynomials • Bernstein polynomials • Linear combination of basis functions – Basis: control points weights: polynomials – Basis: polynomials weights: control points • Subdivision by de Casteljau algorithm • All linear, matrix algebra 69 Recap • Bezier curves: piecewise polynomials • Bernstein polynomials • Linear combination of basis functions – Basis: control points weights: polynomials – Basis: polynomials weights: control points • Subdivision by de Casteljau algorithm • All linear, matrix algebra 70 That’s All for Today, Folks • Further reading – Buss, Chapters 7 and 8 – Fun stuff to know about function/vector spaces • http://en.wikipedia.org/wiki/Vectorspace • http://en.wikipedia.org/wiki/Functionalanalysis • http://en.wikipedia.org/wiki/Functionspace • Inkscape is an open source vector drawing program for Mac/Windows. Try it out vectorportal.com 7 MIT OpenCourseWare http://ocw.mit.edu 6.837 Computer Graphics Fall 2012 For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms.
sharer
Presentations
Free
Document Information
Category:
Presentations
User Name:
Dr.ShaneMatts
User Type:
Teacher
Country:
United States
Uploaded Date:
23-07-2017