2D Triangulation Input 2D Boundary Output Triangle Mesh Physical - - PowerPoint PPT Presentation

2d triangulation
SMART_READER_LITE
LIVE PREVIEW

2D Triangulation Input 2D Boundary Output Triangle Mesh Physical - - PowerPoint PPT Presentation

TriWild : Robust Triangulation with Curved Constraints 1 Yixin Hu, 1 1 Teseo Schneider, 2 2 Xifeng Gao, 3 Qingnan Zhou, 3 4 Alec Jacobson, 1 4 Denis Zorin, 1 Daniele Panozzo. 2D Triangulation Input 2D Boundary Output Triangle


slide-1
SLIDE 1

TriWild:

Robust Triangulation with Curved Constraints

Yixin Hu, Teseo Schneider, Xifeng Gao, Qingnan Zhou, Alec Jacobson, Denis Zorin, Daniele Panozzo.

1 1 1 1 1 2 3 4 2 3 4

slide-2
SLIDE 2

2D Triangulation

9/5/19 Yixin Hu, 2

Input 2D Boundary Output Triangle Mesh Physical Simulation

slide-3
SLIDE 3

Linear Triangulation

9/5/19 Yixin Hu, 3

(Generated by Triangle)

#V = 3013, #F = 4149

Want a smaller mesh?

slide-4
SLIDE 4

Linear Triangulation

9/5/19 Yixin Hu, 4

#V = 1503 #F = 304

#V = 3013, #F = 4149

slide-5
SLIDE 5

Linear Triangulation

9/5/19 Yixin Hu, 5

#V = 1503 #F = 304

#V = 3013, #F = 4149

slide-6
SLIDE 6

Curved Triangulation

9/5/19 Yixin Hu, 6

Curved mesh!

(Generated by TriWild)

#V = 1503 #F = 304

#V = 3013, #F = 4149

!

slide-7
SLIDE 7

2D Triangulation

9/5/19 Yixin Hu, 9

Faster Coarser Conforming Accurate

Input 2D Boundary Output Triangle Mesh Physical Simulation

slide-8
SLIDE 8

Existing Methods

9/5/19 Yixin Hu, 10

  • Curved triangle mesh is not a new concept.
  • Introduced in late 80s.
  • Haven’t been tested on large-scale dataset.
  • Not widely used because no robust tools.
slide-9
SLIDE 9

Tangled Curved Constraints

9/5/19 Yixin Hu, 11

Superposed Curves

slide-10
SLIDE 10

Tangled Curved Constraints

9/5/19 Yixin Hu, 12

Intersected Curves

slide-11
SLIDE 11

Tangled Curved Constraints

9/5/19 Yixin Hu, 13

slide-12
SLIDE 12

Tangled Curved Constraints

9/5/19 Yixin Hu, 14

slide-13
SLIDE 13

9/5/19 Yixin Hu, 15

(Generated by TriWild)

Input:

slide-14
SLIDE 14

9/5/19 Yixin Hu, 16

(Generated by TriWild)

Input:

slide-15
SLIDE 15

9/5/19 Yixin Hu, 17

(Generated by TriWild)

Input:

slide-16
SLIDE 16

9/5/19 Yixin Hu, 18

(Generated by TriWild)

Input:

slide-17
SLIDE 17

Why TriWild?

9/5/19 Yixin Hu, 19

Input High Curvature & Inflection Point Separation !-separation Linear Mesh Generation & Mesh Improvement Curved Mesh Improvement

“Cleanup” the input curves.

slide-18
SLIDE 18

Why TriWild?

9/5/19 Yixin Hu, 20

Input High Curvature & Inflection Point Separation !-separation Linear Mesh Generation & Mesh Improvement Curved Mesh Improvement

Linear mesh for easier curving.

slide-19
SLIDE 19

Pipeline - Input & Output

9/5/19 Yixin Hu, 21

  • Input:
  • Bezier curves. (SVG standard, degree 3)
  • Output:
  • Curved triangle mesh
  • Conforms to primary features.
  • Approximates secondary features up to ".

Primary features Secondary features

slide-20
SLIDE 20

Pipeline - Feature Preprocessing

9/5/19 Yixin Hu, 22

Input High Curvature & Inflection Point Separation

slide-21
SLIDE 21

Pipeline - Feature Preprocessing

9/5/19 Yixin Hu, 23

High Curvature & Inflection Point Separation

slide-22
SLIDE 22

Pipeline - Feature Preprocessing

9/5/19 Yixin Hu, 24

Input High Curvature & Inflection Point Separation !-separation

slide-23
SLIDE 23

Pipeline - Feature Preprocessing

9/5/19 Yixin Hu, 25

!-separation

slide-24
SLIDE 24

Pipeline - Curved Mesh Generation

9/5/19 Yixin Hu, 26

Input High Curvature & Inflection Point Separation !-separation Linear Mesh Generation & Mesh Improvement

slide-25
SLIDE 25

Recap - Linear Mesh Generation (TetWild)

9/5/19 Yixin Hu, 27

Stage I: Valid Mesh Generation (Rational)

Segment Soup Linear Triangle Mesh

slide-26
SLIDE 26

Recap - Linear Mesh Generation (TetWild)

9/5/19 Yixin Hu, 28

Stage I: Valid Mesh Generation (Rational) Stage II: Mesh Improvement (Mixed à Double)

slide-27
SLIDE 27

Recap - Linear Mesh Generation (TetWild)

9/5/19 Yixin Hu, 29

100% success rate on 10,000 real-world models. Stage I: Valid Mesh Generation (Rational) Stage II: Mesh Improvement (Mixed à Double)

slide-28
SLIDE 28

Pipeline - Linear Mesh Generation

9/5/19 Yixin Hu, 30

  • Feature Invariant:
  • Feature edges’ associated curve

has total curvature <#.

  • Feature vertices can only move

along feature curves.

Total curvature <% Move along feature

“feature” == “primary feature”

slide-29
SLIDE 29

Pipeline - Linear Mesh Generation

9/5/19 Yixin Hu, 31

  • Feature Invariant:
  • Feature edges’ associated curve

has total curvature <#.

  • Feature vertices can only move

along feature curves.

  • Vertex Projection
slide-30
SLIDE 30

Pipeline - Linear Mesh Generation

9/5/19 Yixin Hu, 32

  • Feature Invariant:
  • Feature edges’ associated curve

has total curvature <#.

  • Feature vertices can only move

along feature curves.

  • Vertex Projection
slide-31
SLIDE 31

Pipeline - Curved Mesh Generation

9/5/19 Yixin Hu, 33

Linear Mesh Generation & Mesh Improvement

slide-32
SLIDE 32

Pipeline - Curved Mesh Generation

9/5/19 Yixin Hu, 34

Input High Curvature & Inflection Point Separation !-separation Linear Mesh Generation & Mesh Improvement Curved Mesh Improvement

slide-33
SLIDE 33

Pipeline - Curving

9/5/19 Yixin Hu, 35

  • Curving:
  • All feature elements
  • With primary feature edges

(thickened in red)

slide-34
SLIDE 34

Pipeline - Curved Mesh Generation

9/5/19 Yixin Hu, 37

  • Inversion check for curved elements:
slide-35
SLIDE 35

Pipeline - Curved Mesh Generation

9/5/19 Yixin Hu, 41

Curved Mesh Improvement

slide-36
SLIDE 36

Pipeline - Curved Mesh Generation

9/5/19 Yixin Hu, 42

Input High Curvature & Inflection Point Separation !-separation Linear Mesh Generation & Mesh Improvement Curved Mesh Improvement

slide-37
SLIDE 37

Parameters – Envelope Size

9/5/19 Yixin Hu, 43

  • !
  • Used in !-separation for separating primary features and secondary

features.

  • " (same parameter used in TetWild)
  • Maximum distant that secondary feature edges can deviate from input.
slide-38
SLIDE 38

Parameters – Envelope Size

9/5/19 Yixin Hu, 44

slide-39
SLIDE 39

9/5/19 Yixin Hu, 45

! "

Red: primary feature edges Green: secondary feature edges

1e-3 1e-3

slide-40
SLIDE 40

9/5/19 Yixin Hu, 46

! "

Red: primary feature edges Green: secondary feature edges

1e-3 1e-3 1e-2

slide-41
SLIDE 41

9/5/19 Yixin Hu, 47

! "

Red: primary feature edges Green: secondary feature edges

1e-3 1e-3 1e-2 1e-2

slide-42
SLIDE 42

9/5/19 Yixin Hu, 48

! "

Red: primary feature edges Green: secondary feature edges

1e-3 1e-3 1e-2 1e-2

slide-43
SLIDE 43

Parameters – Targeted Edge Length

9/5/19 Yixin Hu, 50

Edge_length = diag_bbox/5

slide-44
SLIDE 44

Parameters – Targeted Edge Length

9/5/19 Yixin Hu, 51

Edge_length = diag_bbox/20

slide-45
SLIDE 45

Parameters – Targeted Edge Length

9/5/19 Yixin Hu, 52

Edge_length = diag_bbox/100

slide-46
SLIDE 46

MATLAB vs TriWild

9/5/19 Yixin Hu, 53

(Generated by TriWild) (Generated by MATLAB)

slide-47
SLIDE 47

MATLAB vs TriWild

9/5/19 Yixin Hu, 54

(Generated by TriWild) (Generated by MATLAB)

slide-48
SLIDE 48

MATLAB vs TriWild

9/5/19 Yixin Hu, 55

Failure Input Original Input

slide-49
SLIDE 49

GMsh vs TriWild

9/5/19 Yixin Hu, 56

(Generated by GMsh) (Generated by TriWild)

19 inverted elements

slide-50
SLIDE 50

9/5/19 Yixin Hu, 57

slide-51
SLIDE 51

Large-scale Test

9/5/19 Yixin Hu, 58

  • Dataset: 19,686 real-world SVG images from openclipart.org.
  • Success rate: 19,685 output meshes
  • The only failure is due to large input size (1.5GB).

Success: <6 hours <64GB memory

slide-52
SLIDE 52

9/5/19 Yixin Hu, 59

slide-53
SLIDE 53

9/5/19 Yixin Hu, 60

slide-54
SLIDE 54

9/5/19 Yixin Hu, 61

slide-55
SLIDE 55

9/5/19 Yixin Hu, 62

slide-56
SLIDE 56

9/5/19 Yixin Hu, 63

slide-57
SLIDE 57

9/5/19 Yixin Hu, 64

slide-58
SLIDE 58

9/5/19

slide-59
SLIDE 59

Large-scale Test

9/5/19 Yixin Hu, 66

0% 2% 4% 6% 1 100 10000

Timing (in seconds)

  • Dataset: 19,686 real-world SVG images from openclipart.org.
  • Success rate: 19,685 output meshes
  • The only failure is due to large input size (1.5GB).

10s

slide-60
SLIDE 60

Application – Diffusion Curves

9/5/19 Yixin Hu, 67

slide-61
SLIDE 61

Application – Diffusion Curve

9/5/19 Yixin Hu, 68

slide-62
SLIDE 62

Application – Inflation

9/5/19 Yixin Hu, 69

Curved Mesh Using Curved Output Using Linear Output

slide-63
SLIDE 63

Application – Inflation

9/5/19 Yixin Hu, 70

Curved Mesh Using Curved Output Using Linear Output

slide-64
SLIDE 64

Application – Stokes

Yixin Hu, 71

Using Curved Mesh

9/5/19

slide-65
SLIDE 65

Application – Stokes

Yixin Hu, 72

Using Linear Mesh

9/5/19

slide-66
SLIDE 66

Application – Stokes

Yixin Hu, 73 9/5/19

slide-67
SLIDE 67

Application – Elasticity

9/5/19 Yixin Hu, 74

Gravity

Using Dense Linear Mesh Using Curved Mesh Curved Mesh

0.09s 115s

slide-68
SLIDE 68

Linear Pipeline

9/5/19 Yixin Hu, 75

Dataset 1: Raw OpenClip20k

  • Piece-wise linear approximations of 19,686 SVG images.

Dataset 2: Cleaned OpenClip20k

  • Raw dataset with duplication and degeneracy removed.

Dataset 3: Snapped OpenClip20k

  • Raw dataset with iteratively snap rounding using " as pixel size.
slide-69
SLIDE 69

Linear Pipeline

9/5/19 Yixin Hu, 76

Compared with: 1) CGAL Conforming/Constrained Delaunay Triangulation 2) Triangle Conforming/Constrained Delaunay Triangulation

Success: <1 hour <16GB memory

CGAL conforming CGAL constrained Triangle conforming Triangle constrained Ours

50% 100% 0 50% 100% 0 50% 100% 0 50% 100% 0 50% 100% raw cleaned snapped 99.97% 99.97% 99.97% 99.97% 99.80% 99.66% 83.09% 99.84% 99.57% 81.92% 99.20% 9.56% 19.01 % 99.93% 34.35%

slide-70
SLIDE 70

Success: <1 hour <16GB memory

Linear Pipeline

9/5/19 Yixin Hu, 77

Compared with: 1) CGAL Conforming/Constrained Delaunay Triangulation 2) Triangle Conforming/Constrained Delaunay Triangulation

CGAL conforming CGAL constrained Triangle conforming Triangle constrained Ours

50% 100% 0 50% 100% 0 50% 100% 0 50% 100% 0 50% 100% raw cleaned snapped 99.97% 99.97% 99.97% 100.0% 99.80% 99.66% 83.09% 99.84% 100.0% 81.92% 99.20% 9.56% 19.01 % 100.0% 34.35%

64GB

slide-71
SLIDE 71

Thank You!

9/5/19 Yixin Hu, 81

ACKNOWLEDGMENTS

  • This work was supported in part through the NYU IT High

Performance Computing resources, services, and staff expertise.

  • This work was partially supported by the NSF CAREER

award under Grant No. 1652515, the NSF grant IIS- 1320635, the NSF grant DMS-1436591, the NSF grant 1835712, the SNSF grant P2TIP2_175859, NSERC Discovery Grants (RGPIN-2017-05235 & RGPAS-2017- 507938), Canada Research Chair award, Connaught Fund, a gift from Adobe Research, and a gift from nTopology. https://github.com/wildmeshing/TriWild

slide-72
SLIDE 72

Thank You!

9/5/19 Yixin Hu, 82

https://github.com/wildmeshing/TriWild

  • Please scan the QR code for reference

implementation in C++ and data.

  • Python wrapper via Conda:
  • Contact me if you have any questions!

yixin.hu@nyu.edu

conda config --add channels conda-forge conda install wildmeshing