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 Mesh Physical Simulation Yixin Hu, 2 9/5/19
Linear Triangulation #V = 3013, #F = 4149 Want a smaller mesh? (Generated by Triangle) Yixin Hu, 3 9/5/19
Linear Triangulation #V = 3013, #F = 4149 #V = 1503 #F = 304 Yixin Hu, 4 9/5/19
Linear Triangulation #V = 3013, #F = 4149 #V = 1503 #F = 304 Yixin Hu, 5 9/5/19
Curved Triangulation ! #V = 3013, #F = 4149 #V = 1503 Curved mesh! #F = 304 (Generated by TriWild) Yixin Hu, 6 9/5/19
2D Triangulation Coarser Faster Input 2D Boundary Output Triangle Mesh Physical Simulation Accurate Conforming Yixin Hu, 9 9/5/19
Existing Methods • 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. Yixin Hu, 10 9/5/19
Tangled Curved Constraints Superposed Curves Yixin Hu, 11 9/5/19
Tangled Curved Constraints Intersected Curves Yixin Hu, 12 9/5/19
Tangled Curved Constraints Yixin Hu, 13 9/5/19
Tangled Curved Constraints Yixin Hu, 14 9/5/19
Input: (Generated by TriWild) Yixin Hu, 15 9/5/19
Input: (Generated by TriWild) Yixin Hu, 16 9/5/19
Input: (Generated by TriWild) Yixin Hu, 17 9/5/19
Input: (Generated by TriWild) Yixin Hu, 18 9/5/19
Why TriWild? “Cleanup” the input curves. Input High Curvature ! -separation Linear Mesh Generation Curved & Inflection Point Separation & Mesh Improvement Mesh Improvement Yixin Hu, 19 9/5/19
Why TriWild? Linear mesh for easier curving. Input High Curvature ! -separation Linear Mesh Generation Curved & Inflection Point Separation & Mesh Improvement Mesh Improvement Yixin Hu, 20 9/5/19
Pipeline - Input & Output • Input: Primary features • Bezier curves. (SVG standard, degree 3) Secondary features • Output: • Curved triangle mesh • Conforms to primary features. • Approximates secondary features up to " . Yixin Hu, 21 9/5/19
Pipeline - Feature Preprocessing Input High Curvature & Inflection Point Separation Yixin Hu, 22 9/5/19
Pipeline - Feature Preprocessing High Curvature & Inflection Point Separation Yixin Hu, 23 9/5/19
Pipeline - Feature Preprocessing Input High Curvature ! -separation & Inflection Point Separation Yixin Hu, 24 9/5/19
Pipeline - Feature Preprocessing ! -separation Yixin Hu, 25 9/5/19
Pipeline - Curved Mesh Generation Input High Curvature ! -separation Linear Mesh Generation & Inflection Point Separation & Mesh Improvement Yixin Hu, 26 9/5/19
Recap - Linear Mesh Generation (TetWild) Linear Segment Soup Triangle Mesh Stage I: Valid Mesh Generation (Rational) Yixin Hu, 27 9/5/19
Recap - Linear Mesh Generation (TetWild) Stage I: Valid Mesh Generation Stage II: Mesh Improvement (Rational) (Mixed à Double) Yixin Hu, 28 9/5/19
Recap - Linear Mesh Generation (TetWild) 100% success rate on 10,000 real-world models. Stage I: Valid Mesh Generation Stage II: Mesh Improvement (Rational) (Mixed à Double) Yixin Hu, 29 9/5/19
Pipeline - Linear Mesh Generation Move along feature • Feature Invariant: • Feature edges’ associated curve Total curvature < % has total curvature < #. • Feature vertices can only move along feature curves. “feature” == “primary feature” Yixin Hu, 30 9/5/19
Pipeline - Linear Mesh Generation • Feature Invariant: • Feature edges’ associated curve has total curvature < #. • Feature vertices can only move along feature curves. • Vertex Projection Yixin Hu, 31 9/5/19
Pipeline - Linear Mesh Generation • Feature Invariant: • Feature edges’ associated curve has total curvature < #. • Feature vertices can only move along feature curves. • Vertex Projection Yixin Hu, 32 9/5/19
Pipeline - Curved Mesh Generation Linear Mesh Generation & Mesh Improvement Yixin Hu, 33 9/5/19
Pipeline - Curved Mesh Generation Input High Curvature ! -separation Linear Mesh Generation Curved & Inflection Point Separation & Mesh Improvement Mesh Improvement Yixin Hu, 34 9/5/19
Pipeline - Curving • Curving: • All feature elements • With primary feature edges (thickened in red) Yixin Hu, 35 9/5/19
Pipeline - Curved Mesh Generation • Inversion check for curved elements: Yixin Hu, 37 9/5/19
Pipeline - Curved Mesh Generation Curved Mesh Improvement Yixin Hu, 41 9/5/19
Pipeline - Curved Mesh Generation Input High Curvature ! -separation Linear Mesh Generation Curved & Inflection Point Separation & Mesh Improvement Mesh Improvement Yixin Hu, 42 9/5/19
Parameters – Envelope Size • ! • 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. Yixin Hu, 43 9/5/19
Parameters – Envelope Size Yixin Hu, 44 9/5/19
Red: primary feature edges ! Green: secondary feature edges 1e-3 " Yixin Hu, 45 9/5/19 1e-3
1e-2 Red: primary feature edges ! Green: secondary feature edges 1e-3 " Yixin Hu, 46 9/5/19 1e-3
1e-2 Red: primary feature edges ! Green: secondary feature edges 1e-3 " 1e-2 Yixin Hu, 47 9/5/19 1e-3
1e-2 Red: primary feature edges ! Green: secondary feature edges 1e-3 " 1e-2 Yixin Hu, 48 9/5/19 1e-3
Parameters – Targeted Edge Length Edge_length = diag_bbox/ 5 Yixin Hu, 50 9/5/19
Parameters – Targeted Edge Length Edge_length = diag_bbox/ 20 Yixin Hu, 51 9/5/19
Parameters – Targeted Edge Length Edge_length = diag_bbox/ 100 Yixin Hu, 52 9/5/19
MATLAB vs TriWild (Generated by MATLAB) (Generated by TriWild) Yixin Hu, 53 9/5/19
MATLAB vs TriWild (Generated by MATLAB) (Generated by TriWild) Yixin Hu, 54 9/5/19
MATLAB vs TriWild Original Input Failure Input Yixin Hu, 55 9/5/19
GMsh vs TriWild 19 inverted elements (Generated by GMsh) (Generated by TriWild) Yixin Hu, 56 9/5/19
Yixin Hu, 57 9/5/19
Large-scale Test • 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 Yixin Hu, 58 9/5/19
9/5/19 Yixin Hu, 59
9/5/19 Yixin Hu, 60
9/5/19 Yixin Hu, 61
9/5/19 Yixin Hu, 62
9/5/19 Yixin Hu, 63
9/5/19 Yixin Hu, 64
9/5/19
Large-scale Test • 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). 6% 4% 2% 0% 10s 1 100 10000 Timing (in seconds) Yixin Hu, 66 9/5/19
Application – Diffusion Curves Yixin Hu, 67 9/5/19
Application – Diffusion Curve Yixin Hu, 68 9/5/19
Application – Inflation Using Curved Output Using Linear Output Curved Mesh Yixin Hu, 69 9/5/19
Application – Inflation Using Linear Output Curved Mesh Using Curved Output Yixin Hu, 70 9/5/19
Application – Stokes Using Curved Mesh Yixin Hu, 71 9/5/19
Application – Stokes Using Linear Mesh Yixin Hu, 72 9/5/19
Application – Stokes Yixin Hu, 73 9/5/19
Application – Elasticity 0.09s 115s Gravity Using Curved Mesh Using Dense Linear Mesh Curved Mesh Yixin Hu, 74 9/5/19
Linear Pipeline 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. Yixin Hu, 75 9/5/19
Success: Linear Pipeline <1 hour <16GB memory Compared with: 1) CGAL Conforming/Constrained Delaunay Triangulation 2) Triangle Conforming/Constrained Delaunay Triangulation CGAL CGAL Triangle Triangle Ours conforming constrained conforming constrained 99.97% 99.97% 99.97% 99.97% 99.80% snapped 99.66% 99.57% 81.92% 83.09% 99.84% cleaned 99.20% 9.56% 19.01 % 99.93% 34.35% raw 0 50% 100% 0 50% 100% 0 50% 100% 0 50% 100% 0 50% 100% Yixin Hu, 76 9/5/19
Success: Linear Pipeline <1 hour <16GB memory 64GB Compared with: 1) CGAL Conforming/Constrained Delaunay Triangulation 2) Triangle Conforming/Constrained Delaunay Triangulation CGAL CGAL Triangle Triangle Ours conforming constrained conforming constrained 100.0% 99.80% 99.97% 99.97% 99.97% snapped 100.0% 81.92% 99.66% 83.09% 99.84% cleaned 99.20% 9.56% 19.01 % 100.0% 34.35% raw 0 50% 100% 0 50% 100% 0 50% 100% 0 50% 100% 0 50% 100% Yixin Hu, 77 9/5/19
Recommend
More recommend