![Page 1: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/1.jpg)
An algorithm for triangulating multiple 3D polygons
Ming Zou1, Tao Ju1, Nathan Carr2
1 Washington University In St. Louis, USA2 Adobe, USA
1Eurographics SGP 2013
![Page 2: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/2.jpg)
Motivation
2
Curves
Surface
➠
![Page 3: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/3.jpg)
Motivation
3
filling holes
![Page 4: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/4.jpg)
Motivation
4
filling holes surfacing parallel contours
![Page 5: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/5.jpg)
Motivation
5
filling holes surfacing parallel contours surfacing 3D sketches
![Page 6: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/6.jpg)
Motivation
6
filling holes surfacing parallel contours surfacing 3D sketches
![Page 7: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/7.jpg)
7
Step 1: Identify Patch Boundaries
filling holes surfacing parallel contours surfacing 3D sketches
![Page 8: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/8.jpg)
8
Step 2: Surfacing each patch
Step 1: Identify Patch Boundaries
![Page 9: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/9.jpg)
9
Step 2: Surfacing each patch
Step 1: Identify Patch Boundaries
![Page 10: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/10.jpg)
Problem Definition
• Input: k 3D polygons (k≥1)
• Output: a triangulation• Consists of triangles
connecting only the input polygon vertices
• Topologically equivalent to a sphere with k holes
• Initial mesh for further refinement
10
Input:
output:
![Page 11: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/11.jpg)
Problem Definition
• Input: k 3D polygons (k≥1)
• Output: a triangulation• Consists of triangles
connecting only the input polygon vertices
• Topologically equivalent to a sphere with k holes
• Initial mesh for further refinement
11
Monkey Saddle
![Page 12: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/12.jpg)
Problem Definition
• Input: k 3D polygons (k≥1)
• Output: a triangulation• Consists of triangles
connecting only the input polygon vertices
• Topologically equivalent to a sphere with k holes
• Initial mesh for further refinement
12
![Page 13: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/13.jpg)
Problem Definition
• Input: k 3D polygons (k≥1)
• Output: an optimal triangulation• A triangulation that minimize
the sum of certain metric
13
![Page 14: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/14.jpg)
Problem Definition
• Input: k 3D polygons (k≥1)
• Output: an optimal triangulation• A triangulation that minimize
the sum of certain metric
• Per-triangle metric• Area
• Perimeter
• Bi-triangle metric• Dihedral angle
14
![Page 15: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/15.jpg)
Related Work - Single Polygon
• A 2D polygon• Linear-time triangulation of a simple polygon
[Chazelle 91]
• No optimality guarantee
• Dynamic programming for optimal triangulation [Gilbert 79, Klincsek 80]
• A 3D polygon• Dynamic programming for optimal triangulation
[Barequet et al. 95, 96]
• Extension of [Gilbert 79] and [Klincsek 80]
• Heuristic-based algorithms [Liepa 03] [Roth et al. 97]
[Bessmeltsev et al. 12]
• No optimality guarantee
15
![Page 16: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/16.jpg)
Related Work - Single Polygon
• A 2D polygon• Linear-time triangulation of a simple polygon
[Chazelle 91]
• No optimality guarantee
• Dynamic programming for optimal triangulation [Gilbert 79, Klincsek 80]
• A 3D polygon• Dynamic programming for optimal triangulation
[Barequet et al. 95, 96]
• Extension of [Gilbert 79] and [Klincsek 80]
• Heuristic-based algorithms [Liepa 03] [Roth et al. 97]
[Bessmeltsev et al. 12]
• No optimality guarantee
16
![Page 17: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/17.jpg)
Related Work - Multiple Polygons
• Planar polygons in 3D• Dynamic programming for optimally triangulating
2 parallel planar polygons [Fuchs et al. 77]
• Heuristic-based algorithms for triangulating ≥2 planar polygons [Barequet et al. 04] [Boissonnat et al. 07] [Liu et al. 08]
• No optimality guarantees
17
![Page 18: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/18.jpg)
Related Work - Multiple Polygons
• Planar polygons in 3D• Dynamic programming for optimally triangulating
2 parallel planar polygons [Fuchs et al. 77]
• Heuristic-based algorithms for triangulating ≥2 planar polygons [Barequet et al. 04] [Boissonnat et al. 07] [Liu et al. 08]
• No optimality guarantees
• Non-planar polygons in 3D• Heuristic-based algorithms
• No optimality guarantees [Rose et al. 07]
• Optimal algorithm • No known literature
18
![Page 19: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/19.jpg)
Contributions
1. The first algorithm for optimally triangulating multiple non-planar 3D polygons• Extension of the dynamic programming algorithm for single polygon
[Barequet et al. 95, 96]
• Guarantee the manifoldness of the surface
2. A fast near-optimal variant for practical use
19
![Page 20: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/20.jpg)
• Example: minimize the sum of triangle area
Triangulating A Single 3D Polygon [Barequet et. al 95, 96]
20
![Page 21: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/21.jpg)
• Example: minimize the sum of triangle area
Triangulating A Single 3D Polygon [Barequet et. al 95, 96]
21
![Page 22: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/22.jpg)
Triangulating A Single 3D Polygon [Barequet et. al 95, 96]
• Example: minimize the sum of triangle area
22spanning edge
: spanning edge
![Page 23: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/23.jpg)
• Example: minimize the sum of triangle area
t
Triangulating A Single 3D Polygon [Barequet et. al 95, 96]
23spanning triangle
: spanning edge : spanning triangle
![Page 24: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/24.jpg)
• Example: minimize the sum of triangle area
t
Triangulating A Single 3D Polygon [Barequet et. al 95, 96]
24
D1 D2
: spanning edge : spanning triangleDi : sub-domain
D1
![Page 25: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/25.jpg)
• Example: minimize the sum of triangle area
t
Triangulating A Single 3D Polygon [Barequet et. al 95, 96]
25
D1 D2
: spanning edge : spanning triangleDi : sub-domain
D1
spanning edge
polygon segment↰
↰
![Page 26: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/26.jpg)
• Example: minimize the sum of triangle area
t
Triangulating A Single 3D Polygon [Barequet et. al 95, 96]
26
D1 D2
: spanning edge : spanning triangleDi : sub-domain
Cost(D) = Cost(D1)+Cost(D2)+Area(t)
D
↵
![Page 27: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/27.jpg)
• Example: minimize the sum of triangle area
t
Triangulating A Single 3D Polygon [Barequet et. al 95, 96]
27
: spanning edge : spanning triangleDi : sub-domain
Cost(D) = Cost(D1)+Cost(D2)+Area(t)
![Page 28: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/28.jpg)
• Example: minimize the sum of triangle area
t
Triangulating A Single 3D Polygon [Barequet et. al 95, 96]
28
: spanning edge : spanning triangleDi : sub-domain
Cost(D) = Cost(D1)+Cost(D2)+Area(t)
![Page 29: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/29.jpg)
• Example: minimize the sum of triangle area
t
Triangulating A Single 3D Polygon [Barequet et. al 95, 96]
29
: spanning edge : spanning triangleDi : sub-domain
Cost(D) = Cost(D1)+Cost(D2)+Area(t)
![Page 30: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/30.jpg)
• Example: minimize the sum of triangle area
t
Triangulating A Single 3D Polygon [Barequet et. al 95, 96]
30
: spanning edge : spanning triangleDi : sub-domain
Cost(D) = Cost(D1)+Cost(D2)+Area(t)
![Page 31: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/31.jpg)
• Example: minimize the sum of triangle area
t
Triangulating A Single 3D Polygon [Barequet et. al 95, 96]
31
: spanning edge : spanning triangleDi : sub-domain
Cost(D) = Cost(D1)+Cost(D2)+Area(t)
![Page 32: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/32.jpg)
• Example: minimize the sum of triangle area
t
Triangulating A Single 3D Polygon [Barequet et. al 95, 96]
32
: spanning edge : spanning triangleDi : sub-domain
Cost(D) = Mint [Cost(D1)+Cost(D2)+Area(t)]
![Page 33: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/33.jpg)
• Example: minimize the sum of triangle area
Triangulating A Single 3D Polygon [Barequet et. al 95, 96]
33
: spanning edge : spanning triangleDi : sub-domain
Cost(D) = Mint [Cost(D1)+Cost(D2)+Area(t)]
![Page 34: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/34.jpg)
Triangulating Multiple 3D Polygons
34
![Page 35: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/35.jpg)
• Extension of Domain structure
Triangulating Multiple 3D Polygons
35
: spanning edge : spanning triangleDi : sub-domain
![Page 36: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/36.jpg)
• Extension of Domain structure
Triangulating Multiple 3D Polygons
36
: spanning edge : spanning triangleDi : sub-domain
spanning edge
spanning edgespan
ning
edg
e
![Page 37: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/37.jpg)
• Extension of Domain structure
Triangulating Multiple 3D Polygons
37
: spanning edge : polygon segment : spanning triangleDi : sub-domain
polygon segment
polygon segment
polygon segment
![Page 38: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/38.jpg)
• Extension of Domain structure
Triangulating Multiple 3D Polygons
38
: spanning edge : polygon segment : hole : spanning triangleDi : sub-domain
holehole
![Page 39: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/39.jpg)
• Extension of Domain structure
Triangulating Multiple 3D Polygons
39
: spanning edge : polygon segment : hole : spanning triangleDi : sub-domain
an input polygon can appear at most once in a domaineither as a polygon segment or a hole
![Page 40: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/40.jpg)
• Extension of Domain structure
Triangulating Multiple 3D Polygons
40
: spanning edge : polygon segment : hole : spanning triangleDi : sub-domain
1 ≤ # of polygon segments ≤ k
![Page 41: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/41.jpg)
• Example: minimize the sum of triangle area
Triangulating Multiple 3D Polygons
41
: spanning edge : polygon segment : hole : spanning triangleDi : sub-domain
![Page 42: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/42.jpg)
• Example: minimize the sum of triangle area
Triangulating Multiple 3D Polygons
42
: spanning edge : polygon segment : hole : spanning triangleDi : sub-domain
![Page 43: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/43.jpg)
• Example: minimize the sum of triangle area
t
Triangulating Multiple 3D Polygons
43
: spanning edge : polygon segment : hole : spanning triangleDi : sub-domain
![Page 44: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/44.jpg)
• Example: minimize the sum of triangle area
t
Triangulating Multiple 3D Polygons
44
t
Case I split Case II split
![Page 45: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/45.jpg)
• Example: minimize the sum of triangle area
t
Triangulating Multiple 3D Polygons
45Case I split Case II split
↻
↺D1
D2
![Page 46: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/46.jpg)
• Example: minimize the sum of triangle area
t
Triangulating Multiple 3D Polygons
46Case II split
↻
↺D1
D2
Cost(D,t)=Minx=1,2[ Cost(Dx) + Area(t) ]
![Page 47: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/47.jpg)
• Example: minimize the sum of triangle area
Triangulating Multiple 3D Polygons
47
↻
↺D1
D2
D11 D12
Case II splitCost(D,t)=Minx=1,2[ Cost(Dx) + Area(t) ]
D31 D32 D41 D42
D21 D22
![Page 48: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/48.jpg)
• Example: minimize the sum of triangle area
Triangulating Multiple 3D Polygons
48
↻
↺D1
D2
D11 D12
Cost(D,t)=Minx=1,2[ Cost(Dx) + Area(t) ]
D31 D32 D41 D42
D21 D22
Cost(D,t)=Minx=1,2,3,4[ Cost(Dx1)+Cost(Dx2)+Area(t) ]
![Page 49: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/49.jpg)
• Example: minimize the sum of triangle area
Triangulating Multiple 3D Polygons
49
↻
↺D1
D2
D11 D12
D31 D32 D41 D42
D21 D22
Cost(D) = Mint [ Cost(D,t) ]
![Page 50: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/50.jpg)
Triangulating Multiple 3D Polygons
50
Topologically equivalent to a sphere with k holes
![Page 51: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/51.jpg)
Manifold Guarantee
51
![Page 52: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/52.jpg)
52
Manifold Guarantee
![Page 53: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/53.jpg)
53
manifold non-manifold
Manifold Guarantee
![Page 54: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/54.jpg)
54
Manifold Guarantee
![Page 55: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/55.jpg)
55
t
Manifold Guarantee
![Page 56: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/56.jpg)
56
Manifold Guarantee
![Page 57: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/57.jpg)
57
a
b
c
d
e
f
g
x y
z
w
Manifold Guarantee
![Page 58: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/58.jpg)
58
a
b
c d e
f
g
x
y
z
x
w
Manifold Guarantee
![Page 59: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/59.jpg)
59
a
b
c d e
f
g
x
y
z
x
w
Manifold Guarantee
➠ ➠
![Page 60: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/60.jpg)
t
60
a
b
c d e
f
g
x
y
z
x
w
Manifold Guarantee
![Page 61: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/61.jpg)
61
a
b
c d e
f
g
x
y
z
x
w
Manifold Guarantee
![Page 62: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/62.jpg)
62
a
b
c d e
f
g
x
y
z
x
w
Manifold Guarantee
![Page 63: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/63.jpg)
63
a
b
c d e
f
g
x
y
z
x
w
Manifold Guarantee
![Page 64: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/64.jpg)
64
a
b
c d e
f
g
x
y
z
x
w
Manifold Guarantee
![Page 65: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/65.jpg)
65
a
b
c d e
f
g
x
y
z
x
w
Manifold Guarantee
![Page 66: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/66.jpg)
66
a
b
c d e
f
g
x
y
z
x
w
Weak Edges: edges that connecting the ends of the
polygon segments
Manifold Guarantee
![Page 67: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/67.jpg)
t
67
a
b
c d e
f
g
x
y
z
x
w
Manifold Guarantee
![Page 68: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/68.jpg)
68
a
b
c d e
f
g
x
y
z
x
w
y
Manifold Guarantee
![Page 69: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/69.jpg)
69
a
b
c d e
g
x
y
z
x
w
y
Manifold Guarantee
f
![Page 70: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/70.jpg)
• Compute optimal triangulation for each combination of weak edges, for each domain
• Only combine triangulations that do not share any weak edge
70
a
b
c d e
f
g
x
y
z
x
w
y
Manifold Guarantee
![Page 71: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/71.jpg)
71
a
b
c d e
f
g
x
y
z
x
w
y
a
b
c d e
f
g
x
y
z
x
w
y
✘ ✔
a
b
c d e
f
g
x
y
z
x
w
y
Opt triangulation that contains weak edge set {ax, ay, xy, gy}
Opt triangulation that contains weak edge set {ax, ag, xg, gy}
![Page 72: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/72.jpg)
• The triangulation computed by the algorithm is guarantee to be the triangulation with a minimum cost that has the right topology.
• Minimal set: a reduced set of weak edge combination.• still guarantee optimality
72
Manifold Guarantee
![Page 73: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/73.jpg)
• Match the complexity of the algorithm for triangulating single 3D polygon [Barequet et al 95, 96]
Complexity
73
time space
per-trianglemetric
bi-trianglemetric
O(n2k+1) O(n2k)
O(n3k+1) O(n3k)
n: # of total vertices; k: # of 3D polygons;
![Page 74: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/74.jpg)
• Test on single polygon minimizing sun of dihedral angles• practical complexities matches theoretical ones
• same complexity of [Barequet et al 95, 96]
Performance - Single polygon
74
![Page 75: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/75.jpg)
Performance - Single polygon
• Test on single polygon minimizing sun of dihedral angles• practical complexities matches theoretical ones
• same complexity of [Barequet et al 95, 96]
75
![Page 76: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/76.jpg)
• Test on single polygon minimizing sun of dihedral angles• practical complexities matches theoretical ones
• same complexity of [Barequet et al 95, 96]
76
Theoretical: O(n4); Practical: O(n4.11) Theoretical: O(n3); Practical: O(n2.27)
Performance - Single polygon
![Page 77: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/77.jpg)
• Test on single polygon minimizing sun of dihedral angles• practical complexities matches theoretical ones
• same complexity of [Barequet et al 95, 96]
77
Theoretical: O(n4); Practical: O(n4.11) Theoretical: O(n3); Practical: O(n2.27)
Performance - Single polygon
![Page 78: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/78.jpg)
• Dataset:• k (1≤k≤6) perturbed saddle curves on the corner of a regular octahedron
• 50~60 data for each k
Performance - Multiple polygons
78
![Page 79: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/79.jpg)
• Dataset:• k (1≤k≤6) perturbed saddle curves on the corner of a regular octahedron
• 50~60 data for each k
Performance - Multiple polygons
79
![Page 80: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/80.jpg)
Performance - Multiple polygons
80
32poly poly
![Page 81: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/81.jpg)
Performance - Multiple polygons
81
32poly poly
![Page 82: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/82.jpg)
Improving efficiency
82
![Page 83: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/83.jpg)
All Triangles
Improving efficiency
83
A Triangle Subset
![Page 84: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/84.jpg)
Improving efficiency
84
A Triangle Subset
• Considerably smaller
• Big enough to contain a close-to-optimal triangulation
Requirements of the subset
All Triangles
![Page 85: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/85.jpg)
Improving efficiency
85
• Considerably smaller
• Big enough to contain a close-to-optimal triangulation
Requirements of the subset
All Triangles
Delaunay Triangles
![Page 86: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/86.jpg)
Improving efficiency
86
• Considerably smaller
• Big enough to contain a close-to-optimal triangulation
• Delaunay Triangle Subset:• Fewer: O(n3) → O(n2)
• Good triangles
• No self-intersecting
Requirements of the subset
All Triangles
Delaunay Triangles
![Page 87: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/87.jpg)
87
Performance - Single polygon
![Page 88: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/88.jpg)
88
Performance - Single polygon
![Page 89: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/89.jpg)
Performance - Multiple polygon
89
32 4 5 6poly poly polypoly poly
![Page 90: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/90.jpg)
90
32 4 5 6
![Page 91: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/91.jpg)
91
32 4 5 6
![Page 92: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/92.jpg)
92
32 4 5 6
How Optimal?
![Page 93: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/93.jpg)
Optimality
• Close-to-optimal results on both smooth curves and random loops on mesh• Minimizing total area
• near-optimal for single polygon
• less optimal for two polygons
• Minimizing average dihedral angle• near-optimal for both single and two-polygon
cases
93
triangulation on all triangles
triangulation on Delaunay triangles
![Page 94: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/94.jpg)
Applications
94
• Sketch based modeling
![Page 95: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/95.jpg)
• Hole filling• 455 groups of holes (61 holes have interior islands)
• fill all the holes in 40 sec
Applications
95
![Page 96: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/96.jpg)
• Hole filling• 455 groups of holes (61 holes have interior islands)
• fill all the holes in 40 sec
Applications
96
Islands
![Page 97: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/97.jpg)
Conclusion
• The first optimal algorithm for triangulating multiple non-planar 3D polygons• guarantee manifoldness of the surface
• fast near-optimal variation method
• Future work• other triangle subsets besides Delaunay triangles
• more sophisticated weighting schemes
• automatic grouping of hole islands
• Code available online!• http://www.cse.wustl.edu/~zoum/projects/TriMultPoly/
97
![Page 98: An algorithm for triangulating multiple 3D polygons · Related Work - Multiple Polygons •Planar polygons in 3D • Dynamic programming for optimally triangulating 2 parallel planar](https://reader033.vdocument.in/reader033/viewer/2022042515/5f6b2e7761c9732f351095ad/html5/thumbnails/98.jpg)
Thank you !
Comments | Suggestions | Questions
98