Last TimeTodaySubdivision ShortcomingsWhat are Parametric Curves?Why Parametric Curves?Parametric CurvesBasis Functions (first sighting)Hermite SplineControl Point InterpretationHermite Spline (2)Hermite Spline (3)Basis FunctionsSplines in 2D and 3DBezier Curves (1)Slide 15Bezier Curves (2)Bezier Basis Functions for d=3Bezier Curves of Varying DegreeBezier Curve PropertiesRendering Bezier Curves (1)Rendering Bezier Curves (2)Sub-Dividing Bezier CurvesSlide 23Slide 24de Casteljau’s AlgorithmInvarianceLonger CurvesPiecewise Bezier CurveContinuityAchieving ContinuityBezier Continuity4/20/04 © University of Wisconsin, CS559 Spring 2004Last Time•Subdivision–Sphere–Fractals–Modified Butterfly scheme4/20/04 © University of Wisconsin, CS559 Spring 2004Today•Parametric curves–Hermite curves–Bezier curves•Homework 6 due•Homework 7 available Friday, due May 4•No lecture April 22 (Thursday)4/20/04 © University of Wisconsin, CS559 Spring 2004Subdivision Shortcomings•Subdivision surfaces suffer from parameterization problems–How are texture coordinates handled?–Surface are 2D in nature, how do we attached a 2D space to subdivision surfaces?•Subdivision surfaces can be difficult to model with–Still may take complex underlying surface to get desired shape–Effects of changes to underlying mesh are not always obvious•Evaluation is non-trivial–Methods exist for taking a point in the underlying mesh and figuring out where it will go on the surface, but it isn’t easy4/20/04 © University of Wisconsin, CS559 Spring 2004What are Parametric Curves?•Define a parameter space–1D for curves–2D for surfaces•Define a mapping from parameter space to 3D points–A function that takes parameter values and gives back 3D points•The result is a parametric curve or surface0t1Mapping:F:t→(x,y)01(Fx(t), Fy(t))4/20/04 © University of Wisconsin, CS559 Spring 2004Why Parametric Curves?•Parametric curves are intended to provide the generality of polygon meshes but with fewer parameters for smooth surfaces–Polygon meshes have as many parameters as there are vertices (at least)•Fewer parameters makes it faster to create a curve, and easier to edit an existing curve•Normal vectors and texture coordinates can be easily defined everywhere•Parametric curves are easier to animate than polygon meshes4/20/04 © University of Wisconsin, CS559 Spring 2004Parametric Curves•We have seen the parametric form for a line:•Note that x, y and z are each given by an equation that involves:–The parameter t –Some user specified control points, x0 and x1 •This is an example of a parametric curve101010)1()1()1(tzztztyytytxxtx4/20/04 © University of Wisconsin, CS559 Spring 2004Basis Functions (first sighting)•A line is the sum of two functions multiplied by vectors:•A linear combination of basis functions–t and 1-t are the basis functions•The weights are called control points–(x0,y0,z0) and (x1,y1,z1) are the control points–They control the shape and position of the curve 1110001zyxtzyxtzyx4/20/04 © University of Wisconsin, CS559 Spring 2004Hermite Spline•A spline is a parametric curve defined by control points–The term spline dates from engineering drawing, where a spline was a piece of flexible wood used to draw smooth curves–The control points are adjusted by the user to control the shape of the curve•A Hermite spline is a curve for which the user provides:–The endpoints of the curve–The parametric derivatives of the curve at the endpoints (tangents with length)•The parametric derivatives are dx/dt, dy/dt, dz/dt –That is enough to define a cubic Hermite spline4/20/04 © University of Wisconsin, CS559 Spring 2004Control Point Interpretation0x0dtdx1dtdx1xStart PointEnd PointStart TangentEnd Tangent4/20/04 © University of Wisconsin, CS559 Spring 2004Hermite Spline (2)•Say the user provides •A cubic spline has degree 3, and is of the form:–For some constants a, b, c and d derived from the control points, but how?•We have constraints:–The curve must pass through x0 when t=0–The derivative must be x’0 when t=0–The curve must pass through x1 when t=1–The derivative must be x’1 when t=1dctbtatx 23110010,,,dtddtdxxxx4/20/04 © University of Wisconsin, CS559 Spring 2004Hermite Spline (3)•Solving for the unknowns gives:•Rearranging gives:000101010123322xdxcxxxxbxxxxa)2( )( )132( )32(230231230231tttttttttxxxxx 10121001110320032230101tttxxxxxor4/20/04 © University of Wisconsin, CS559 Spring 2004Basis Functions•A point on a Hermite curve is obtained by multiplying each control point by some function and summing4/20/04 © University of Wisconsin, CS559 Spring 2004Splines in 2D and 3D•For higher dimensions, define the control points in higher dimensions (that is, as vectors)1012100111032003223010101010101tttzzzzyyyyxxxxzyx4/20/04 © University of Wisconsin, CS559 Spring 2004Bezier Curves (1)•Different choices of basis functions give different curves–Choice of basis determines how the control points influence the curve–In Hermite case, two control points define endpoints, and two more define parametric derivatives•For Bezier curves, two control points define endpoints, and two control the tangents at the endpoints in a geometric way4/20/04 © University of Wisconsin, CS559 Spring 2004Control Point Interpretation0x3xStart PointEnd PointPoint along start tangentPoint along end Tangent2x2x4/20/04 © University of Wisconsin, CS559 Spring 2004Bezier Curves (2)•The user supplies d control points, pi•Write the curve as:•The functions Bid are the Bernstein polynomials of degree d –Where else have you seen them?•This equation can be written as a matrix equation also–There is a matrix to take Hermite control points to Bezier control points didiitBt0px ididittidtB 14/20/04 © University of Wisconsin, CS559 Spring 2004Bezier Basis Functions for d=34/20/04
View Full Document