1 / 17

Parametric Surfaces

Parametric Surfaces. Define points on the surface in terms of two parameters Simplest case: bilinear interpolation. s. x ( s,1 ). P 1,1. P 0,1. x ( s , t ). t. P 0,0. P 1,0. s. x ( s,0 ). Tensor Product Surface Patches. Defined over a rectangular domain

marianor
Download Presentation

Parametric Surfaces

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Parametric Surfaces • Define points on the surface in terms of two parameters • Simplest case: bilinear interpolation s x(s,1) P1,1 P0,1 x(s,t) t P0,0 P1,0 s x(s,0)

  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, 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

  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 OK Not 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 C0 continuity along an edge? • How do we ensure C1 continuity along an edge? • How do we ensure C2 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 C1 continuity at the corner point?

  9. Bezier Mesh Continuity • Just like curves, the control points must satisfy rigid constraints to ensure parametric continuity • C0 continuity along an edge? Share control points at the edge • C1 continuity along an edge? Control points across edge are collinear and equally spaced • C2 continuity along an edge? Constraints extent to points farther from the edge • For geometric continuity, constraints are less rigid • Still collinear for G1, but can be anywhere along the line • What can you say about the vertices around a corner if there must be C1 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 • Bi(s) and Bj(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 C2 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

More Related