1 / 49

2IV60 Computer graphics set 9: Splines

2IV60 Computer graphics set 9: Splines. Jack van Wijk TU/e. Splines. Classic problem: How to draw smooth curves? Spline curve : smooth curve that is defined by a sequence of points Requirements: …. H&B 8-8:420-425. Approximating spline. Splines 1.

Télécharger la présentation

2IV60 Computer graphics set 9: Splines

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. 2IV60 Computer graphicsset 9: Splines Jack van Wijk TU/e

  2. Splines... • Classic problem: How to draw smooth curves? • Spline curve: smooth curve that is defined by a • sequence of points • Requirements: • … H&B 8-8:420-425

  3. Approximating spline Splines 1 Spline curve: smooth curve that is defined by a sequence of points Interpolating spline H&B 8-8:420-425

  4. Approximating spline Splines 2 Convex hull: Smallest polygon that encloses all points Convex hull Interpolating spline H&B 8-8:420-425

  5. Approximating spline Splines 3 Control graph: polyline through sequence of points Control graph Interpolating spline H&B 8-8:420-425

  6. Splines 4 Splines in computer graphics: Piecewise cubic splines Segments H&B 8-8:420-425

  7. Splines 5 Segments have to match ‘nicely’. Given two segments P(u) en Q(v). We consider the transition of P(1) to Q(0). Zero-order parametric continuity C0: P(1) = Q(0). Endpoint of P(u) coincides with startpoint Q(v). Q(v) P(u) H&B 8-8:420-425

  8. Splines 6 Segments have to match ‘nicely’. Given two segments P(u) en Q(v). We consider the transition of P(1) to Q(0). First order parametric continuity C1: dP(1)/du = dQ(0)/dv. Direction of P(1) coincides with direction of Q(0). Q(v) P(u) H&B 8-8:420-425

  9. circle arc line segment Splines 7 First order parametric continuity gives a smooth curve. Sometimes good enough, sometimes not. Suppose that you are bicycling over the curve. What to do with the steering rod at the transition? Turn around! Discontinuity in the curvature! H&B 8-8:420-425

  10. Splines 8 Given two segments P(u) and Q(v). We consider the transition of P(1) to Q(0). Second order parametric continuity C2: d2P(1)/du2 = d2Q(0)/dv2. Curvatures in P(1) and Q(0) are equal. Q(v) P(u) H&B 8-8:420-425

  11. Splines 9 So far: considered parametric continuity. Here the vectors are exactly equal. It suffices to require that the directions are the same: geometric continuity. Q(v) Q(v) P(u) P(u) H&B 8-8:420-425

  12. Splines 10 Given two segments P(u) en Q(v). We consider the transition of P(1) to Q(0). First order geometric continuity: G1: dP(1)/du =  dQ(0)/dv with  >0. Direction of P(1) coincides with direction Q(0). Q(v) P(u) H&B 8-8:420-425

  13. Representation cubic spline 1 H&B 8-8:420-425 U:Powers of u C: Coefficient matrix

  14. Control points or Control vectors Representation cubic spline 2 H&B 8-8:420-425 Matrix Mspline :’translates’ geometric info to coefficients

  15. Representation cubic spline 3 H&B 8-8:420-425

  16. Representation cubic spline 4 H&B 8-8:420-425

  17. Representatie cubic spline 5 Puzzle: Describe a line segment between the points P0 en P1 with those three variants. P1 u=1 P0 u u=0 H&B 8-8:420-425

  18. Representation cubic spline 6 P1 P0 u u=0 H&B 8-8:420-425

  19. Representation cubic spline 7 P1 P0 u u=0 H&B 8-8:420-425

  20. Representation cubic spline 8 P1 P0 u u=0 H&B 8-8:420-425

  21. Spline surface 1 P33 P03 P30 P20 P10 H&B 8-8:420-425 P00

  22. Spline surface 2 H&B 8-8:420-425

  23. Spline surface 2 P33 P03 P30 P20 P10 H&B 8-8:420-425 P00

  24. Spline surface 3 v u H&B 8-8:420-425

  25. Spline surface 4 v u du := 1/nu; // nu: #facets u-direction dv := 1/nv; // nv: #facets v-direction for i := 0 to nu1 do u := i*du; for j := 0 to nv 1 do v := j*dv; DrawQuad(P(u,v), P(u+du, v), P(u+du, v+dv), P(u, v+dv)) H&B 8-8:420-425

  26. Spline surface 5 // Alternative: calculate points first for i := 0 to nu do for j := 0 to nv do Q[i, j] := P(i/nu, j/nv); for i := 0 to nu 1 do for j := 0 to nv 1 do DrawQuad(Q[i, j], Q[i+1, j], Q[i+1, j+1], Q[i, j+1]) v u H&B 8-8:420-425

  27. Spline surface 6 // Alternative: calculate points first, // triangle version for i := 0 to nu do for j := 0 to nv do Q[i, j] := P(i/nu, j/nv); for i := 0 to nu 1 do for j := 0 to nv 1 do DrawTriangle(Q[i, j], Q[i+1, j], Q[i+1, j+1]); DrawTriangle(Q[i, j], Q[i+1, j+1], Q[i, j+1]); v u H&B 8-8:420-425

  28. Spline surface 7 // Alternative: calculate points first, // triangle variant, triangle strip for i := 0 to nu do for j := 0 to nv do Q[i, j] := P(i/nu, j/nv); for i := 0 to nu 1 do glBegin(GL_TRIANGLE_STRIP); for j := 0 to nv 1 do glVertex(Q[i, j]); glVertex(Q[i, j+1]); glEnd; v u H&B 8-8:420-425

  29. Bézier spline curves 1 H&B 8-10:432-441

  30. Bézier spline curves 2 P1 P0 H&B 8-10:432-441

  31. Bézier spline curves 3 P1 P2 P0 H&B 8-10:432-441

  32. Bézier spline curves 4 P2 P3 P1 P0 H&B 8-10:432-441

  33. Bézier spline curves 5 P2 P3 P1 P0 H&B 8-10:432-441

  34. Bézier spline curves 6 P2 P3 P1 P0 H&B 8-10:432-441

  35. Bézier spline curves 7 P2 P3 P1 P0 H&B 8-10:432-441

  36. Bézier spline curves 8 P2 P3 Q1 P1 Q0 Q2 Q3 P0 H&B 8-10:432-441

  37. Bézier spline curves 8 P2 P3 Q1 P1 Q0 Q2 Q3 P0 H&B 8-10:432-441

  38. Bézier spline curves 9 P2 P3 Q1 P1 Q0 Q2 Q3 P0 H&B 8-10:432-441

  39. Bézier spline curves 9 P2 P3 P1 Q1 Q0 Q2 Q3 P0 H&B 8-10:432-441

  40. Bézier spline curves 10 H&B 8-10:432-441

  41. Bézier surface 1 P33 P03 P30 P20 P10 P00 H&B 8-10:432-441

  42. Bézier surface 2 P33 P30 Q33 P03 P00 Q03 Q30 H&B 8-10:432-441 Q00

  43. Bézier surface 2 P33 P30 Q33 P03 P00 Q03 Q30 H&B 8-10:432-441 Q00

  44. Bézier surface 3 P33 P30 P03 P00 Q30 H&B 8-10:432-441 Q00

  45. Bézier surface 3 P33 P30 P03 P00 Q30 H&B 8-10:432-441 Q00

  46. Bézier surface 3 P33 P30 P03 P00 Q30 H&B 8-10:432-441 Q00

  47. Finally… The world is full of all kind of objects: Trees, people, cars, housed, clouds, rocks, waves, pencil sharpeners, fire, mountains, plants, … How can we describe these, such that they are • easy to enter; • easy to process; • easy to display? Complex problem, HUGE topic!

  48. Finally… Many other ways to model shapes: • Sweep representations • Fractal-Geometry methods • Shape Grammars • Procedurally defined objects • Constructive Solid Geometry • Subdivision surfaces • Custom methods for hair, water, fire, etc.

  49. Next… • We now know how to model curved objects • But they still look somewhat dull, …

More Related