digital geometry processing
play

Digital Geometry Processing Algorithms for Representing, Analyzing - PowerPoint PPT Presentation

Digital Geometry Processing Algorithms for Representing, Analyzing and Comparing 3D shapes Today Previous lecture summary Triangle mesh basics Shape Simplification Shape Subdivision Last Time Registration registered point


  1. Subdivision Curves Uniform B-spline of order 2: P 8 P 7 P 3 Q P 4 P 2 3 Q 2 Q 1 P 5 P 6 P 1 Chaikin’s algorithm for Quadratic Uniform B-splines: j odd: Q j = 3 4 P ( j +1) / 2 + 1 4 P ( j +3) / 2 j even: Q j = 1 4 P j/ 2 + 3 4 P ( j +2) / 2

  2. Subdivision Curves Uniform B-spline of order 2: P 8 P 7 P 3 Q P 4 P 2 3 Q 2 Q 1 P 5 P 6 P 1 Chaikin’s algorithm for Quadratic Uniform B-splines: P i , i ∈ (1 , 2 , . . . , n ) Given n points: Produce 2(n-1) points: Q j , j ∈ (1 , 2 , . . . , 2 n − 2)

  3. Subdivision Curves Uniform B-spline of order 2: P 8 P 7 P 3 Q P 4 P 2 3 Q 2 Q 1 P 5 P 6 P 1 Chaikin’s algorithm for Quadratic Uniform B-splines: P i , i ∈ (1 , 2 , . . . , n ) Given n points: Produce 2(n-1) points: Q j , j ∈ (1 , 2 , . . . , 2 n − 2) Let P = Q and iterate until number of points reaches desired accuracy.

  4. Subdivision Curves Uniform B-spline of order 3: P 8 P 3 P 7 P 4 P 2 P 1 P 5 P 6 Given n points: P i , i ∈ (1 , 2 , . . . , n ) Q j , j ∈ (1 , 2 , . . . , 2 n − 3) Produce 2(n-1)-1 points:

  5. Subdivision Curves Uniform B-spline of order 3: P 8 P 3 P 7 P 4 P 2 P 1 P 5 P 6 At each iteration produce 2(n-1)-1 points: Q 2 i − 1 = 1 2 P i + 1 2 P i +1 Q 2 i = 1 8 P i − 1 + 3 4 P i + 1 8 P i +1

  6. Subdivision Curves Uniform B-spline of order 3: P 8 P 3 P 7 P 4 P 2 P 1 P 5 P 6 At each iteration produce 2(n-1)-1 points: Q 2 i − 1 = 1 2 P i + 1 2 P i +1 Q 2 i = 1 8 P i − 1 + 3 4 P i + 1 8 P i +1

  7. Subdivision Curves Uniform B-spline of order 3: P 8 P 3 P 7 P 4 P 2 P 1 P 5 P 6 At each iteration produce 2(n-1)-1 points: Q 2 i − 1 = 1 2 P i + 1 2 P i +1 Q 2 i = 1 8 P i − 1 + 3 4 P i + 1 8 P i +1

  8. Subdivision Curves Uniform B-spline of order 3: P 8 P 3 P 7 P 4 P 2 P 1 P 5 P 6 At each iteration produce 2(n-1)-1 points: Q 2 i − 1 = 1 2 P i + 1 2 P i +1 Q 2 i = 1 8 P i − 1 + 3 4 P i + 1 8 P i +1

  9. Subdivision Curves Uniform B-spline of order 3: P 8 P 3 P 7 P 4 P 2 P 1 P 5 P 6 At each iteration produce 2(n-1)-1 points: Q 2 i − 1 = 1 2 P i + 1 2 P i +1 Q 2 i = 1 8 P i − 1 + 3 4 P i + 1 8 P i +1

  10. Subdivision Curves Uniform B-spline of order 3: P 8 P 3 P 7 P 4 P 2 P 1 P 5 P 6 At each iteration produce 2(n-1)-1 points: Q 2 i − 1 = 1 2 P i + 1 2 P i +1 Q 2 i = 1 8 P i − 1 + 3 4 P i + 1 8 P i +1

  11. Subdivision Curves Uniform B-spline of order 3: P 8 P 3 P 7 P 4 P 2 P 1 P 5 P 6 At each iteration produce 2(n-1)-1 points: Q 2 i − 1 = 1 2 P i + 1 2 P i +1 Q 2 i = 1 8 P i − 1 + 3 4 P i + 1 8 P i +1

  12. Subdivision Curves Interpolating curves: P 8 P 3 P 7 P 4 P 2 P 1 P 5 P 6 In matrix form: for every 4 consecutive old points, produce 2 new points: 0 1 P 1 ✓ ◆ ✓ ◆ Q 1 = 1 P 2 0 16 0 0 B C B C Q 2 − 1 9 9 − 1 P 3 16 @ A P 4

  13. Subdivision Curves Interpolating curves: P 8 P 3 P 7 P 4 P 2 P 1 P 5 P 6 In matrix form: for every 4 consecutive old points, produce 2 new points: 0 1 P 1 ✓ ◆ ✓ ◆ Q 1 = 1 P 2 0 16 0 0 B C B C Q 2 − 1 9 9 − 1 P 3 16 @ A P 4

  14. Subdivision Curves Interpolating curves: P 8 P 3 P 7 P 4 P 2 P 1 P 5 P 6 In matrix form: for every 4 consecutive old points, produce 2 new points: 0 1 P 1 ✓ ◆ ✓ ◆ Q 1 = 1 P 2 0 16 0 0 B C B C Q 2 − 1 9 9 − 1 P 3 16 @ A P 4

  15. Subdivision Curves Interpolating curves: P 8 P 3 P 7 P 4 P 2 P 1 P 5 P 6 In matrix form: for every 4 consecutive old points, produce 2 new points: 0 1 P 1 ✓ ◆ ✓ ◆ Q 1 = 1 P 2 0 16 0 0 B C B C Q 2 − 1 9 9 − 1 P 3 16 @ A P 4

  16. Subdivision Curves Interpolating curves: P 8 P 3 P 7 P 4 P 2 P 1 P 5 P 6 Note: Before starting, make a copy of first and last points. At each iteration, copy the first and last points.

  17. Examples Chaikin’s scheme

  18. Examples Chaikin’s scheme Control polygon

  19. Examples Daubechies scheme Fractal-like

  20. Subdivision Surfaces Apply the same ideas to generating smooth surfaces. General approach: Start with a control Polytope. 1. At each iteration refine the polytope according to some rules. 2. Stop when resolution is high enough. 3.

  21. Subdivision Surfaces Apply the same ideas to generating smooth surfaces. General approach: Start with a control Polytope. 1. At each iteration refine the polytope according to some rules. 2. Stop when resolution is high enough. 3.

  22. Subdivision Rules There are topological and geometric changes. Geometric: • How the positions of the vertices change Topological: • How the connectivity changes

  23. Subdivision Rules There are topological and geometric changes. Typically, both geometric and topological changes are local: New vertices, edges and faces depend on a small neighborhood of old ones.

  24. Doo-Sabin subdivision surfaces Generalization of Chaikin’s corner cutting to surfaces. At each iteration: 1. Consider the barycenter of every (old) face 2. Construct centroids between the center and old vertices. 3. Connect them in a natural way. 4. Restart.

  25. Doo-Sabin subdivision surfaces Generalization of Chaikin’s corner cutting to surfaces. At each iteration: 1. Consider the barycenter of every (old) face 2. Construct centroids between the center and old vertices. 3. Connect them in a natural way. 4. Restart.

  26. Doo-Sabin subdivision surfaces Generalization of Chaikin’s corner cutting to surfaces. At each iteration: 1. Consider the barycenter of every (old) face 2. Construct centroids between the center and old vertices. 3. Connect them in a natural way. 4. Restart.

  27. Doo-Sabin subdivision surfaces Generalization of Chaikin’s corner cutting to surfaces. At each iteration: 1. Consider the barycenter of every (old) face 2. Construct centroids between the center and old vertices. 3. Connect them in a natural way. 4. Restart.

  28. Doo-Sabin subdivision surfaces Generalization of Chaikin’s corner cutting to surfaces. At each iteration: 1. Consider the barycenter of every (old) face 2. Construct centroids between the center and old vertices. 3. Connect them in a natural way. 4. Restart.

  29. Doo-Sabin subdivision surfaces Generalization of Chaikin’s corner cutting to surfaces. At each iteration: 1. Consider the barycenter of every (old) face 2. Construct centroids between the center and old vertices. 3. Connect them in a natural way. 4. Restart.

  30. Doo-Sabin subdivision surfaces Generalization of Chaikin’s corner cutting to surfaces. At each iteration: 1. Consider the barycenter of every (old) face 2. Construct centroids between the center and old vertices. 3. Connect them in a natural way. 4. Restart.

  31. Doo-Sabin subdivision surfaces Generalization of Chaikin’s corner cutting to surfaces. At each iteration: 1. Consider the barycenter of every (old) face 2. Construct centroids between the center and old vertices. 3. Connect them in a natural way. 4. Restart.

  32. Doo-Sabin subdivision surfaces

  33. Catmull-Clark subdivision surfaces Generalization of cubic spline subdivision to surfaces. • Approximating Scheme • Small support stencil (just immediate neighbors) • Limit surface is 2nd-order continuous except at extraordinary vertices • Subdivision scheme used in all modern Pixar films

  34. Catmull-Clark subdivision surfaces Generalization of cubic spline subdivision to surfaces. At each iteration: 1. Construct Face vertices: barycenters of old faces. 2. Construct Edge vertices. 3. Update existing vertices. 4. Connect them in a natural way. 4. Restart.

  35. Catmull-Clark subdivision surfaces Generalization of cubic spline subdivision to surfaces. At each iteration: 1. Construct Face vertices: barycenters of old faces. 2. Construct Edge vertices: average of the old edge vertices and the associated face vertices

  36. Catmull-Clark subdivision surfaces Generalization of cubic spline subdivision to surfaces. At each iteration: 1. Construct Face vertices: barycenters of old faces. 2. Construct Edge vertices: average of the old edge vertices and the associated face vertices

  37. Catmull-Clark subdivision surfaces Generalization of cubic spline subdivision to surfaces. At each iteration: 1. Construct Face vertices: barycenters of old faces. 2. Construct Edge vertices: average of the old edge vertices and the associated face vertices

  38. Catmull-Clark subdivision surfaces Generalization of cubic spline subdivision to surfaces. At each iteration: 1. Construct Face vertices: barycenters of old faces. 2. Construct Edge vertices. 3. Update existing vertices. 4. Connect them in a natural way. 4. Restart.

  39. Catmull-Clark subdivision surfaces Generalization of cubic spline subdivision to surfaces. f 2 e 1 e 2 v new v old f 3 f 1 e 3 At each iteration: 1. Construct Face vertices: barycenters of old faces. 2. Construct Edge vertices. 3. Update existing vertices. e j : old vertex incident along edge j n n v new = v old + 1 ( e j − v old ) + 1 f i : new (orange) vertex on face j X X ( f j − v old ) n 2 n 2 n : number of incident edges. j =1 j =1

  40. Catmull-Clark subdivision surfaces Generalization of cubic spline subdivision to surfaces. At each iteration: 1. Construct Face vertices. 2. Construct Edge vertices. 3. Update existing vertices. 4. Connect them in a natural way. 4. Restart.

  41. Catmull-Clark subdivision surfaces Generalization of cubic spline subdivision to surfaces. At each iteration: 1. Construct Face vertices. 2. Construct Edge vertices. 3. Update existing vertices. 4. Connect them in a natural way. 4. Restart.

  42. Catmull-Clark subdivision surfaces

  43. Loop subdivision surfaces Triangle-based subdivision: At each iteration: 1. Construct Edge vertices. 2. Update existing vertices. 3. Connect them in a natural way. 4. Restart.

  44. Loop subdivision surfaces Triangle-based subdivision: 3/8 1/8 1/8 3/8 At each iteration: 1. Construct Edge vertices. e i = 3 8 v e 1 + 3 8 v e 2 + 1 8 v t 1 + 1 8 v t 2

Recommend


More recommend