1 / 34

CS559: Computer Graphics

CS559: Computer Graphics. Lecture 33: Shape Modeling Li Zhang Spring 2008. Today. Shape Modeling Reading Real-Time Rendering, 3e, 13.2.1 (except Rational Bezier Patches) Linux: /p/course/cs559-lizhang/public/readings/ 13_surfs_gleicher.pdf 

Download Presentation

CS559: Computer Graphics

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. CS559: Computer Graphics Lecture 33: Shape Modeling Li Zhang Spring 2008

  2. Today • Shape Modeling • Reading • Real-Time Rendering, 3e, 13.2.1 (except Rational Bezier Patches) • Linux: /p/course/cs559-lizhang/public/readings/ 13_surfs_gleicher.pdf  • Windows: P:\course\cs559-lizhang\public\readings\ 13_surfs_gleicher.pdf

  3. Parametric surface • Line Segments (1D) -> polygon meshes (2D) • Cubic curves (1D) -> BiCubic Surfaces (2D) • Bezier curve -> Bezier surface

  4. Bilinear Bezier Patch • Define a surface that passes through a, b, c, d? Looks familiar?

  5. Biquadratic Bezier Patch • Define a surface that passes a 3x3 control lattice. v p(u,0) = (1-u)2 p00 + 2(1-u)u p10 + u2 p20 p(u,1) = (1-u)2 p01 + 2(1-u)u p11 + u2 p21 u p(u,2) = (1-u)2 p02 + 2(1-u)u p12 + u2 p22 p(u,v) = (1-v)2 p(u,0)+ 2(1-v)v p(u,1)+ v2 p(u,2)

  6. Bicubic Bezier Patch • 4x4 control points? • Demo: http://www.nbb.cornell.edu/neurobio/land/OldStudentProjects/cs490-96to97/anson/BezierPatchApplet/index.html • Connecting Bezier Patches, demo on the same page.

  7. De Casteljau algorithm in 2D p100(u,v) = Bilinear(p00, p10, p01, p11; u, v) p101(u,v) = Bilinear(p01, p11, p02, p12; u, v) p110(u,v) = Bilinear(p10, p20, p11, p21; u, v) p111(u,v) = Bilinear(p11, p21, p12, p22; u, v) p100(u,v) = Bilinear(p00, p10, p01, p11; u, v)

  8. Different degree in different directions v u

  9. General Formula for Bezier Patch • If we have contronl points pi,j on a m by n lattice, • Properties • Invariant to affine transform • Convex combination, • Used for intersection

  10. General Formula for Bezier Patch • If we have contronl points pi,j on a m by n lattice, • Surface Normal

  11. Issues with Bezier Patches • With Bézier or B-spline patches, modeling complex surfaces amounts to trying to cover them with pieces of rectangular cloth. • It’s not easy, and often not possible if you don’t make some of the patch edges degenerate (yielding triangular patches). • Trying to animate that object can make continuity very difficult, and if you’re not very careful, your model will show creases and artifacts near patch seams. • Subdivision Surface is a promising solution.

  12. Subdivision Surface • From a coarse control mesh to smooth mesh with infinite resolution

  13. Example: Toy story 2

  14. Subdivision Curve We have seen this idea before Shirley, Figure 15.15, The limiting curve is a quadratic Bezier Curve RTR 3e, Figure 13.29, The limiting curve is a quadratic B-spline

  15. Subdivision Curves: Approximating Initial (Control) Curve: For each iteration k+1, add two vertices between: Approximating: Limit curve is very smooth (C2), but does not pass through control points

  16. Subdivision Curves: Interpolating Initial (Control) Curve: For each iteration k+1, add two vertices between: Interpolating: for 0<w<1/8, limit curve is C1, and passes through control points

  17. Subdivision Curves: Interpolating • Handling Boundary Cases

  18. Subdivision Surfaces Extend subdivision idea from curves to surfaces RTR, 3e, figure 13.32

  19. Basic Steps

  20. Loop Subdivision • Regular vertex: valence = 6 • Irregular vertex: valence != 6 • Irregular vertices can only be initial vertices.

  21. Loop Subdivision

  22. Loop Subdivision C2 for regular vertices C1 for irregular vertices

  23. Limiting Surface • Position and tangent of a vertex of the limiting surface can be computed directly ∞

  24. Sqrt(3) subdivision

  25. Sqrt(3) subdivision

  26. Sqrt(3) subdivision C2 for regular vertices C1 for irregular vertices

  27. Sqrt(3) subdivision

  28. Sqrt(3) vs Loop • + slower triangle growth rate • + better for adaptive subdivision • Edge flipping adds complexity • Less intuitive at first few iterations

  29. Catmull-Clark Subdivision • Work for arbitrary polygons, not limited to triangles • Used by Pixar in Geri’s game, toy story2 and all subsequent featues

  30. Catmull-Clark Subdivision Regular vertices: valence = 4

  31. Catmull-Clark Subdivision C2 for regular vertices C1 for irregular vertices

  32. Catmull-Clark Subdivision • Geri’s game

  33. Piecewise smooth subdivision

  34. Piecewise smooth subdivision

More Related