Title: Computing Geometry-aware Handle and Tunnel Loops in 3D Models
1Computing Geometry-aware Handle and Tunnel Loops
in 3D Models
- Tamal K. Dey
- Kuiyu Li
- The Ohio State University
Jian Sun Stanford University
David Cohen-Steiner Inria, Sophia-Antipolis
2Loops are important in graphics
Ben-Chen, Gotsman, Bunin 08
Sheffer, Hart 02
Erickson, Whittlesey 02
Gu, Gortler, Hoppe 02
Verdiere, Lauzarus, Erickson 02
3Related work
- Topological simplification, Feature recognition,
and Parameterization - El-Sana, Varshney 97 use a-hulls to find
tunnels - Shattuck, Leahy 01 use Reeb graph to find
handles - Guskov, Wood 01 use a surface growing strategy
to remove small handles - Nooruddin, Turk 03 use morphological operations
to remove small handles - Wood, Hoppe, Desbrun, Schroder 04 use Reeb
graph to remove handles - Zhou, Ju, Hu 07 use medial axis to detect loops
4Handle and tunnel loops
- Given closed surface M ? R3
- a handle loop spans a disk in the interior of M
- a tunnel loop spans a disk in the exterior of M
5Contribution
- A new persistence-based algorithm, requires no
extra structure (medial axis, curve skeleton,
Reeb graphs) - Inputs surface mesh, point cloud, iso-surface
6Contribution
- A new persistence-based algorithm, requires no
extra structure (medial axis, curve skeleton,
Reeb graphs) - Inputs surface mesh, point cloud, iso-surface
7Contribution
- A new persistence-based algorithm, requires no
extra structure (medial axis, curve skeleton,
Reeb graphs) - Inputs surface mesh, point cloud, iso-surface
8Contribution
- A new persistence-based algorithm, requires no
extra structure (medial axis, curve skeleton,
Reeb graphs) - Inputs surface mesh, point cloud, iso-surface
9Chain and boundary operator
- p-chain sum of p-simplices
- all p-chains form group Cp
- mod 2 operation in Cp cc0
L1 (e0e1e4)
L2 (e2e3e4)
(e0e1e2e3)
10Cycle, boundary, and homology
- c is a p-cycle if its boundary is empty
- all p-cycles form group Zp
(e0e1e4) ? Z1
- c is a p-boundary if its boundary of a
(p1)-chain - all p-boundaries form group Bp
(e2e3e4) ? B1
- Homology Hp Zp / Bp
- Each element of Hp represents an equivalent class
(e0e1e4) ? H1
11Definitions
- Let M ? R3, I and O be its inside and outside
- Handle a loop on M that is trivial in H1(I) and
non-trivial in H1(O) - Tunnel a loop on M that is trivial in H1(O) and
non-trivial in H1(I)
Existence For a closed surface M of genus g,
there exist g handles forming a basis of H1(O)
and g tunnels forming a basis of H1(I). H1(M)
H1(I) ? H1(O).
Dey, Li, Sun 07
12Topological persistence Edelsbrunner,Letscher,Zom
orodian 02
- Filtration 0 K-1 lt K0 lt K1 lt lt Kn K
- Ki - Ki-1 ?i
- Topological Persistence studies the creation and
death of the cycles in the filtration - Pairing Algorithm tells a p-simplex is
- Positive if it creates a p-cycle
- Negative if it kills an existing (p-1)-cycle
A negative p-simplex ? is always paired with a
unique positive (p-1)-simplex ?' where ? kills a
(p-1)-cycle created by ?'
Edelsbrunner, Letscher, Zomorodian 02
13Pairing algorithm - by example
(v0, -)
(v1, -)
(v2, -)
(v3, -)
- v0 is positive
- it creates a 0-cycle (v0)
- same for v1, v2, v3
14Pairing algorithm - by example
(v0, -)
(v1, -)
(v2, -)
(v3, -)
- e4 is negative and paired with v2
- it kills a 0-cycle (v2) created by v2
15Pairing algorithm - by example
(v0, -)
(v1, -)
(v2, e4)
(v3, -)
- e5 is negative and paired with v1
- it kills a 0-cycle (v1) created by v1
16Pairing algorithm - by example
(v0, -)
(v1, e5)
(v2, e4)
(v3, -)
17Pairing algorithm - by example
(v0, -)
(v1, e5)
(v2, e4)
(v3, e6)
- e6 is negative and paired with v3
- it kills a 0-cycle (v3) created by v3
18Pairing algorithm - by example
(v0, -)
(v1, e5)
(v2, e4)
(v3, e6)
(e7, -)
- e7 is positive
- it creates a 1-cycle (e4e5e6e7)
19Pairing algorithm - by example
(v0, -)
(v1, e5)
(v2, e4)
(v3, e6)
(e7, -) (e8, -)
- e8 is positive
- it creates a 1-cycle (e6e7e8)
20Pairing algorithm - by example
(v0, -)
(v1, e5)
(v2, e4)
(v3, e6)
(e7, -) (e8, -)
- t9 is negative and paired with e8
- it kills a 1-cycle (e6e7e8) created by e8
21Pairing algorithm - by example
(v0, -)
(v1, e5)
(v2, e4)
(v3, e6)
(e7, -) (e8, t9)
22Pairing algorithm - by example
(v0, -)
(v1, e5)
(v2, e4)
(v3, e6)
(e7, -) (e8, t9)
- t10 is negative and paired with e7
- it kills the 1-cycle (e4e5e6e7) created by e7
23Pairing algorithm - by example
(v0, -)
(v1, e5)
(v2, e4)
(v3, e6)
(e7, t10) (e8, t9)
24Pairing algorithm - by example
- Fact the paired positive edge in a killed loop
is the youngest among all edges in the loop
e is paired with t
25Computing handle and tunnel loops
- Pre-processing to get volume mesh I and O
- Topological algorithm
- Two refinements to make the loops geometry-aware
26Pre-processing to get I and O
- Surface mesh
- DelPSC Cheng, Dey, Levine 07
- Point cloud
- CoCone Dey, Giesen 02
- Iso-surface
- easy to get
27Topo. algorithm - adding simplicies on surface
- All simplices on M are added to the filtration
- generating 2g unpaired positive edges
28Topo. algorithm - adding edges and triangles in I
and O
- All edges and triangles of I/O are added
- when a negative triangle of I/O pairs with an
unpaired positive edge on M, a handle/tunnel loop
is generated
29Make loops geometry-aware - refinement 1
- For each negative triangle t, a series of
homologous loops are obtained - Let L1, L2, , Lk be those that lie on M, sorted
by the time when they are found. Set the handle
(or tunnel) of t as L1
30Make loops geometry-aware - refinement 2
- A handle or tunnel is found when a cross section
of M is filled
- To get small loops, we want small cross sections
get filled first
31Make loops geometry-aware - refinement 2
- Compute geodesic size of a triangle in I and O
Add triangles of I and O in increasing order of
the geodesic size
32Effect of refinement 2
33HanTun algorithm - with refinement 1 2
34Examples
Gearbox (478k, 2582k) genus78
35Examples
Colon (854k, 4966k) genus160
36Examples - topological simplification
Casting (31.9k, 169k) genus9
37Examples - topological simplification
Buddha (109k, 614k) genus9
38Examples - iso-surface
Engine (629k, 20040k) genus20
39Examples - multiple components and knotty model
Aneurism (5.6k, 631k) genus 1
Knotty cup (5.4k, 31.9k) genus 2
40Examples - different volume meshing
Molecule_1 (16k, 95k)
Molecule_2 (16k, 126k) genus1
41Examples - different surface meshing densities
Hip_1 (173k, 996k) genus11
Hip_2 (38k, 213k) genus11
Hip_3 (14k, 73k) genus11
42Examples - models with boundaries and non-manifold
Children (199k, 1168k) 1st Betti number 393
43Times
Data Size Ptime Geodesic Loop DLS
Knotty cup Mother Molecule Botijo Casting Buddha Hip Children Gearbox Colon 5.4k, 31.9k 19.5k, 117k 19.9k, 115k 30k, 176k 31.9k, 169k 109k, 614k 173k, 996k 199k, 1168k 478k, 2582k 854k, 4966k 6.9 30.3 35.8 77.1 92.7 1377.1 2400.0 17.3 23759.9 30572.2 3.2 13.9 5.5 20.6 25.2 168.7 648.1 1350.8 2058.6 12103.9 0.8 4.1 0.9 2.3 14.0 16.2 265.5 2267.3 33769.1 37093.4 fail 75.1 49.6 148.4 156.8 1.8k fail fail fail fail
Atom Aneurism Engine 1 Engine 2 3.3k, 41.8k 23k, 5210k 157k, 2766k 629k, 20040k 0.5 3.1 3.2 11.3 0.3 9.1 520.0 7812.6 0.2 73.0 207.1 3392.6 fail fail fail fail
Dell PC with 2GHz Intel Xeon CPU and 2GB RAM
44Times - speed up with new observations (not
reported yet)
Data Size Ptime Geodesic Loop DLS
Knotty cup Mother Molecule Botijo Casting Buddha Hip Children Gearbox Colon 5.4k, 31.9k 19.5k, 117k 19.9k, 115k 30k, 176k 31.9k, 169k 109k, 614k 173k, 996k 199k, 1168k 478k, 2582k 854k, 4966k 6.9 30.3 35.8 77.1 92.7 1377.1 2400.0 17.3 23759.9 30572.2 0.06 0.51 0.34 0.73 1.01 6.33 21.91 62.96 75.1 448.8 0.15 0.42 0.28 0.58 0.71 2.44 3.52 7.68 26.3 96.6 fail 75.1 49.6 148.4 156.8 1.8k fail fail fail fail
Atom Aneurism Engine 1 Engine 2 3.3k, 41.8k 23k, 5210k 157k, 2766k 629k, 20040k 0.5 3.1 3.2 11.3 0.01 0.98 22.7 317.8 0.12 119.4 33.3 393.1 fail fail fail fail
Dell PC with 2GHz Intel Xeon CPU and 2GB RAM
45Software
- www.cse.ohio-state.edu/tamaldey/hantun.html
Thanks