subdivision surfaces
play

Subdivision Surfaces CS 418 Intro to Computer Graphics John C. - PowerPoint PPT Presentation

Subdivision Surfaces CS 418 Intro to Computer Graphics John C. Hart Knot Insertion [0 2 4 6 8 10] 4 6 8 2 4 6 0 2 4 6 8 10 Knot Insertion [0 2 4 5 6 8 10] 4 6 8 4 5 6 5 6 8 2 4 6 2 4 5 0 2 4 6 8 10 Knot Insertion [0 2 4 5 6 8 10]


  1. Subdivision Surfaces CS 418 Intro to Computer Graphics John C. Hart

  2. Knot Insertion [0 2 4 6 8 10] 4 6 8 2 4 6 0 2 4 6 8 10

  3. Knot Insertion [0 2 4 5 6 8 10] 4 6 8 4 5 6 5 6 8 2 4 6 2 4 5 0 2 4 6 8 10

  4. Knot Insertion [0 2 4 5 6 8 10] 4 5 6 5 6 8 2 4 5 0 2 4 6 8 10

  5. Loop Knot Insertion 2 3 4 1 2 3 3 4 5 (7 8 9) 0 1 2 4 5 6 (6 7 8)

  6. Loop Knot Insertion 2 3 4 3 3.5 4 2 2.5 3 1 2 3 3 4 5 (7 8 9) 1 1.5 2 4 4.5 5 0 1 2 4 5 6 (6 7 8) 5 5.5 6

  7. Loop Knot Insertion 2 3 4 3 3.5 4 2 2.5 3 1.5 2 3 3 4 5 1 2 3 1 2 2.5 1 1.5 2 4 4.5 5 0 1 2 4 5 6 5 5.5 6

  8. Loop Knot Insertion 2 3 4 3 3.5 4 2 2.5 3 1.5 2 3 3 4 5 1 2 3 1.5 2 2.5 1 2 2.5 1 1.5 2 4 4.5 5 0 1 2 4 5 6 5 5.5 6

  9. Loop Knot Insertion 2 3 4 3 3.5 4 2 2.5 3 1.5 2 3 3 4 5 1 2 3 1.5 2 2.5 1 2 2.5 1 1.5 2 4 4.5 5 0 1 2 4 5 6 5 5.5 6

  10. Smoothing a Polygon

  11. Smoothing a Polygon 1. Add edge midpoints

  12. Smoothing a Polygon 1. Add edge midpoints 2. Add struts – Struts connect midpoints of segments from vertices to edge midpoints – One strut per vertex

  13. Smoothing a Polygon 1. Add edge midpoints 2. Add struts – Struts connect midpoints of segments from vertices to edge midpoints – One strut per vertex 3. Add strut midpoints

  14. Smoothing a Polygon 1. Add edge midpoints 2. Add struts – Struts connect midpoints of segments from vertices to edge midpoints – One strut per vertex 3. Add strut midpoints 4. Connect

  15. Smoothing a Polygon 1. Add edge midpoints 2. Add struts – Struts connect midpoints of segments from vertices to edge midpoints – One strut per vertex 3. Add strut midpoints 4. Connect 5. Repeat

  16. B-Spline Patches • Tensor product of two curves n n ∑∑ = n n ( s , t ) N ( s ) N ( t ) p p j i ij = = j 0 i 0 • Need to subdivide control points to create four sub- patches • Need to generate new control points – vertex points (replacing control points) – edge points – face points

  17. Face Points • Approximate edge points as midpoint of control points E = 1/2 p + 1/2 p • Face point is midpoint of approximate edge points F = 1/2 E + 1/2 E = 1/4 p + 1/4 p + 1/4 p + 1/4 p

  18. Edge Points •Face points are midpoints between approx. edge points •Approx. edge point is midpoint between control points •Actual edge point is midpoint between midpoints E 2 between approx edge point and face points p 0 E = 1/2 (1/2 (1/2 E 0 + 1/2 E 1 ) + 1/2 E 1 ) + F 1 E F 0 1/2 (1/2 E 1 + 1/2 (1/2 E 1 + 1/2 E 2 )) E 1 = 1/2 (1/2 F 0 + 1/2 (1/2 p 0 + 1/2 p 1 )) + E 0 p 1 1/2 (1/2 (1/2 p 0 + 1/2 p 1 ) + 1/2 F 1 ) = 1/4 ( F 0 + p 0 + p 1 + F 1 )

  19. Vertex Points E 2 V 2 E 0 E 3 V 0 = 1/4 E 0 + 1/2 p 0 + 1/4 E 1 p 2 V 2 = 1/4 E 2 + 1/2 p 2 + 1/4 E 3 V 1 p 0 p 1 V 0 V = 1/2 (1/2 (1/2 V 0 + 1/2 V 1 ) + 1/2 V 1 )+ 1/2 (1/2 V 1 + 1/2 (1/2 V 1 + 1/2 V 2 ) E 1 = 1/4 (1/4 ( F 0 + F 1 + p 0 + p 1 ) + 1/4 ( F 2 + F 3 + p 1 + p 2 ) + 2 V 1 ) F 2 p 2 = 1/4 (1/4 ( F 0 + F 1 + F 2 + F 3 ) + F 0 E 2 E 1 1/4 ( p 0 + 2 p 1 + p 2 ) + 2/4 ( E 2 + E 3 + 2 p 1 )) F 3 p 0 p 1 E 0 E 3 = 1/16( F 0 + F 1 + F 2 + F 3 + F 1 2 E 0 + 2 E 1 + 2 E 2 + 2 E 3 + 4 p 1 )

  20. Catmull-Clark Subdiv

  21. Catmull-Clark Subdiv • Add new “face” vertex at each face centroid centroid = average of face’s vertices

  22. Catmull-Clark Subdiv • Add new “face” vertex at each face centroid centroid = average of face’s vertices • Add new “edge” vertex at the average of each edge’s endpoints and adjacent face centroids

  23. Catmull-Clark Subdiv • Add new “face” vertex at each face centroid centroid = average of face’s vertices • Add new “edge” vertex at the average of each edge’s endpoints and adjacent face centroids • Move each vertex to a new position that is… 1 × ave. adjacent 2 × ave. adjacent ( n -3) × current + + face centroids edge midpoints vertex position n where n is the valence of the vertex (# of neighboring edges, also # of adjacent faces)

  24. Example

  25. Creases f i+1 j = Centroid of polygon j = ( v i + e i e i +1 j )/2 • Dart vertex (one sharp edge): v i +1 = ( n -2)/ n v i + 1/ n 2 Σ j e i j + 1/ n 2 Σ j f i +1 j • Crease vertex (two sharp edges): j + 6 v i + e i v i +1 = ( e i k )/8 • Corner vertex (three or more sharp edges) v i +1 = v i

  26. Another Example

  27. Success?

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend