Presentation is loading. Please wait.

Presentation is loading. Please wait.

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.

Similar presentations


Presentation on theme: "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."— Presentation transcript:

1 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 P 0,1 x(s,0) x(s,1)

2 Tensor Product Surface Patches Defined over a rectangular domain –Valid parameter values come from within a rectangular region in parameter space: 0  s<1, 0  t<1 Use a rectangular grid of control points to specify the surface –4 points in the bi-linear case, more in other cases Surface takes the form:

3 Bezier Patches As with Bezier curves, B i n (s) and B j m (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, P i,j

4 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)

5 Properties of Bezier Patches The patch interpolates its corner points –Comes from the interpolation property of the underlying curves The tangent plane at each corner interpolates the corner vertex and the two neighboring edge vertices –The tangent plane is the plane that is perpendicular to the normal vector at a point –The tangent plane property derives from the curve tangent properties and the way to compute normal vectors The patch lies within the convex hull of its control vertices –The basis functions sum to one and are positive everywhere

6 Bezier Patch Matrix Form Note that the 3 matrices stay the same if the control points do not change –The middle product can be pre-computed, leaving only:

7 Bezier Patch Meshes A patch mesh is just many patches joined together along their edges –Patches meet along complete edges –Each patch must be rectangular OK Not OK

8 Bezier Mesh Continuity Just like curves, the control points must satisfy rigid constraints to ensure parametric continuity –How do we ensure C 0 continuity along an edge? –How do we ensure C 1 continuity along an edge? –How do we ensure C 2 continuity along an edge? For geometric continuity, constraints are less rigid What can you say about the vertices around a corner if there must be C 1 continuity at the corner point?

9 Bezier Mesh Continuity Just like curves, the control points must satisfy rigid constraints to ensure parametric continuity –C 0 continuity along an edge? Share control points at the edge –C 1 continuity along an edge? Control points across edge are collinear and equally spaced –C 2 continuity along an edge? Constraints extent to points farther from the edge For geometric continuity, constraints are less rigid –Still collinear for G 1, but can be anywhere along the line What can you say about the vertices around a corner if there must be C 1 continuity at the corner point? –They are co-planar (not the interior points, just corner and edge)

10 Rendering Bezier Patches Option 1: Evaluate at fixed set of parameter values and join up with triangles –Can’t use quadrilaterals because points may not be co-planar –Ideal situation for triangle strips –Advantage: Simple, and OpenGL has commands to do it for you –Disadvantage: No easy way to control quality of appearance Option 2: Subdivide –Allows control of error in the triangle approximation –Defined much like curve subdivision, but done once in each parametric direction

11 Midpoint Subdivision Repeatedly join midpoints to find new control vertices –Do it first for each row of original control points: 4x4 -> 4x7 –Then do it for each column of new control points:4x7 -> 7x7

12 A Potential Problem One (good) way to subdivide, is: –If a control mesh is flat enough – draw it –Else, subdivide into 4 sub-patches and recurse on each Problem: Neighboring patches may not be subdivided to the same level –Cracks can appear because join edges have different control meshes –This can be fixed by carefully shifting vertices around Make more highly subdivided match less subdivided along edges Crack

13 Computing Normal Vectors The partial derivative in the s direction is one tangent vector The partial derivative in the t direction is another Take their cross product, and normalize, to get the surface normal vector

14 B-spline Patches B i (s) and B j (t) are the B-spline blending functions Uniform B-spline patches use uniform knot vectors in each parametric direction

15 Evaluating B-spline Patches Use the same trick as with curves: –All the blending functions are translations of each other –Find: a=floor(s), b=floor(t) –Compute: u=s-a, v=t-b –Use blending functions for [0,1) interval given in last lecture for B-spline curves

16 B-spline Patch Properties Patch lies within convex hull of control vertices Continuity is automatically C 2 for uniform cubic B-splines Interpolation can be forced by duplicating control vertices –Problem: Partial derivatives will vanish, resulting in undefined normal vectors –Solution: use normal from control polygon, or use normal from a nearby point on the surface Interpolation and changing in continuity can be achieved with non-uniform B-splines NURBS patches can also be defined –Definition follows directly from NURBS curves, but now all coordinates are functions of s,t

17 B-spline Patch Subdivision We’ll look at this next lecture, in the context of subdivision surfaces


Download ppt "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."

Similar presentations


Ads by Google