Download presentation
Presentation is loading. Please wait.
1
© University of Wisconsin, CS559 Fall 2004
Last Time Subdivision Sphere Fractals Modified Butterfly scheme Implicit Surfaces 12/2/2004 © University of Wisconsin, CS559 Fall 2004
2
© University of Wisconsin, CS559 Fall 2004
Today Parametric curves Hermite curves Bezier curves Homework 7 due Thursday Dec 9 Will be available for collection early in exam week Best 5 of 7 homeworks are used to compute grade, each one equally weighted 12/2/2004 © University of Wisconsin, CS559 Fall 2004
3
Subdivision 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 easy 12/2/2004 © University of Wisconsin, CS559 Fall 2004
4
What 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 surface (Fx(t), Fy(t)) Mapping:F:t→(x,y) 1 1 t 12/2/2004 © University of Wisconsin, CS559 Fall 2004
5
© University of Wisconsin, CS559 Fall 2004
Why 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 meshes 12/2/2004 © University of Wisconsin, CS559 Fall 2004
6
© University of Wisconsin, CS559 Fall 2004
Parametric 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 curve 12/2/2004 © University of Wisconsin, CS559 Fall 2004
7
Basis 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 12/2/2004 © University of Wisconsin, CS559 Fall 2004
8
© University of Wisconsin, CS559 Fall 2004
Hermite 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 spline 12/2/2004 © University of Wisconsin, CS559 Fall 2004
9
Control Point Interpretation
End Tangent Start Tangent End Point Start Point 12/2/2004 © University of Wisconsin, CS559 Fall 2004
10
© University of Wisconsin, CS559 Fall 2004
Hermite 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=1 12/2/2004 © University of Wisconsin, CS559 Fall 2004
11
© University of Wisconsin, CS559 Fall 2004
Hermite Spline (3) Solving for the unknowns gives: Rearranging gives: or 12/2/2004 © University of Wisconsin, CS559 Fall 2004
12
© University of Wisconsin, CS559 Fall 2004
Basis Functions A point on a Hermite curve is obtained by multiplying each control point by some function and summing 12/2/2004 © University of Wisconsin, CS559 Fall 2004
13
© University of Wisconsin, CS559 Fall 2004
Splines in 2D and 3D For higher dimensions, define the control points in higher dimensions (that is, as vectors) 12/2/2004 © University of Wisconsin, CS559 Fall 2004
14
© University of Wisconsin, CS559 Fall 2004
Bezier 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 way 12/2/2004 © University of Wisconsin, CS559 Fall 2004
15
Control Point Interpretation
Point along start tangent End Point Point along end Tangent Start Point 12/2/2004 © University of Wisconsin, CS559 Fall 2004
16
© University of Wisconsin, CS559 Fall 2004
Bezier 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 12/2/2004 © University of Wisconsin, CS559 Fall 2004
17
Bezier Basis Functions for d=3
12/2/2004 © University of Wisconsin, CS559 Fall 2004
18
Bezier Curves of Varying Degree
12/2/2004 © University of Wisconsin, CS559 Fall 2004
19
Bezier Curve Properties
The first and last control points are interpolated The tangent to the curve at the first control point is along the line joining the first and second control points The tangent at the last control point is along the line joining the second last and last control points The curve lies entirely within the convex hull of its control points The Bernstein polynomials (the basis functions) sum to 1 and are everywhere positive They can be rendered in many ways E.g.: Convert to line segments with a subdivision algorithm 12/2/2004 © University of Wisconsin, CS559 Fall 2004
20
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: 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. In particular, it is hard to measure the deviation of a line segment from the exact curve 12/2/2004 © University of Wisconsin, CS559 Fall 2004
21
Rendering Bezier Curves (2)
Recall that a Bezier curve lies entirely within the convex hull of its control vertices If the control vertices are nearly collinear, then the convex hull is a good approximation to the curve Also, a cubic Bezier curve can be subdivided into two shorter curves that exactly cover the original This suggests an algorithm: Keep breaking the curve into sub-curves Stop when the control points of each sub-curve are nearly collinear Draw the control polygon - the polygon formed by the control points 12/2/2004 © University of Wisconsin, CS559 Fall 2004
22
© University of Wisconsin, CS559 Fall 2004
Invariance Translational invariance means that translating the control points and then evaluating the curve is the same as evaluating and then translating the curve Rotational invariance means that rotating the control points and then evaluating the curve is the same as evaluating and then rotating the curve These properties are essential for parametric curves used in graphics It is easy to prove that Bezier curves, Hermite curves and everything else we will study are translation and rotation invariant Some forms of curves, rational splines, are also perspective invariant Can do perspective transform of control points and then evaluate the curve 12/2/2004 © University of Wisconsin, CS559 Fall 2004
23
© University of Wisconsin, CS559 Fall 2004
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 Alternate, most common 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 12/2/2004 © University of Wisconsin, CS559 Fall 2004
24
Piecewise Bezier Curve
“knot” P0,0 P1,3 P0,3 P1,0 P1,2 P1,1 12/2/2004 © University of Wisconsin, CS559 Fall 2004
25
© University of Wisconsin, CS559 Fall 2004
Continuity When two curves are joined, we typically want some degree of continuity across the boundary (the knot) C0, “C-zero”, point-wise continuous, curves share the same point where they join C1, “C-one”, continuous derivatives, curves share the same parametric derivatives where they join C2, “C-two”, continuous second derivatives, curves share the same parametric second derivatives where they join Higher orders possible 12/2/2004 © University of Wisconsin, CS559 Fall 2004
26
© University of Wisconsin, CS559 Fall 2004
Bezier Continuity P0,1 P0,2 P0,0 P1,3 J P1,2 P1,1 Disclaimer: PowerPoint curves are not Bezier curves, they are interpolating piecewise quadratic curves! This diagram is an approximation. 12/2/2004 © University of Wisconsin, CS559 Fall 2004
27
© University of Wisconsin, CS559 Fall 2004
Sketch of Proof for C1 Bezier curve equation: Parametric derivative: Evaluated at endpoint of curve (note proves tangent property): 12/2/2004 © University of Wisconsin, CS559 Fall 2004
28
© University of Wisconsin, CS559 Fall 2004
Proof (cont) P0,1 P0,2 P1,3 P0,0 J P1,2 P1,1 C1 requires equal parametric derivatives: 12/2/2004 © University of Wisconsin, CS559 Fall 2004
29
© University of Wisconsin, CS559 Fall 2004
Geometric Continuity Derivative continuity is important for animation If an object moves along the curve with constant parametric speed, there should be no sudden jump at the knots For other applications, tangent continuity might be enough Requires that the tangents point in the same direction Referred to as G1 geometric continuity Curves could be made C1 with a re-parameterization: u=f(t) The geometric version of C2 is G2, based on curves having the same radius of curvature across the knot What is the tangent continuity constraint for a Bezier curve? 12/2/2004 © University of Wisconsin, CS559 Fall 2004
30
Bezier Geometric Continuity
P0,1 P0,2 P0,0 P1,3 J P1,1 P1,2 for some k 12/2/2004 © University of Wisconsin, CS559 Fall 2004
31
© University of Wisconsin, CS559 Fall 2004
Parametric Surfaces Define points on the surface in terms of two parameters Simplest case: bilinear interpolation x(s,1) s P1,1 P0,1 x(s,t) t P0,0 s x(s,0) P1,0 12/2/2004 © University of Wisconsin, CS559 Fall 2004
32
Tensor Product Surface Patches
Defined over a rectangular domain Valid parameter values come from within a rectangular region in parameter space: 0s<1, 0t<1 Use a rectangular grid of control points to specify the surface 4 points in the bi-linear case on the previous slide, more in other cases Surface takes the form: For some functions Fi,s and Fj,t 12/2/2004 © University of Wisconsin, CS559 Fall 2004
33
© University of Wisconsin, CS559 Fall 2004
Bezier Patches As with Bezier curves, Bin(s) and Bjm(t) are the Bernstein polynomials of degree n and m respectively Most frequently, use n=m=3: cubic Bezier patch Need 4x4=16 control points, Pi,j 12/2/2004 © University of Wisconsin, CS559 Fall 2004
34
© University of Wisconsin, CS559 Fall 2004
Bezier Patches (2) Edge curves are Bezier curves Any curve of constant s or t is a Bezier curve One way to think about it: Each row of 4 control points defines a Bezier curve in s Evaluating each of these curves at the same s provides 4 virtual control points The virtual control points define a Bezier curve in t Evaluating this curve at t gives the point x(s,t) x(s,t) 12/2/2004 © University of Wisconsin, CS559 Fall 2004
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.