Computing handles and tunnels in 3D models

579 Views

Download Presentation
## Computing handles and tunnels in 3D models

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -

**Computing handles and tunnels in 3D models**Tamal K. Dey Joint work: Kuiyu Li, Jian Sun, D. Cohen-Steiner**Projects in Jyamiti group**• Surface reconstrucion (Cocone) • Delaunay meshing (DelPSC) • Shape feature processing (Segmatch, Cskel)**Use of Handles and Tunnels**• Topological simplification / feature recognition / parameterization • El-Sana and Varshney[1997] use α-hulls to search for tunnels. • Guskov and Wood[2001] propose a surface growing strategy to remove small handles. • Nooruddin and Turk[2003] use morphological operations to remove small handles. • Wood, Hoppe, Desbrun, and Schroder[2004] use Reeb graph to remove handles. • Shattuck and Leahy[2001] use Reeb graph to compute handles. • From WUSTL Model/surface editing (Zhou, Ju, and Hu[2007] use medial axis to detect loops) and work by Grimm et al.**Nontrivial loops as first attempt?**• Nontrivial loops can neither be handle nor tunnel. • Handle and tunnel loops have to be non-separating.**Related work for loops on surface**• Loops on a surface • Compute polygon schemas [Vegter-Yap90][Dey-Schipper95] • Linear time algorithm • Compute optimal systems of loops [VL05][EW06] • Verdiere and Lazarus gave an algorithm for computing a system of loops which is shortest among the homotopy class of a given one. • Erickson and Whittlesey gave a greedy algorithm to compute the shortest system of loops among all systems of loops. • Compute optimal cut graph [EH04] • Computing a shortest cut graph is NP-hard.**A better idea**• Intuitively, a loop on a connected, closed, surface M in R3 is: • handle if it spans a disk (surface) in the bounded space bordered by M. • tunnel if it spans a disk (surface) in the unbounded space bordered by M.**Cycle, Boundary and Homology**• p-chain: c=aii, i is p-simplex. (e2+e3+e4) is a 1-chain. • If c'=ai'i, then c+c'=(ai+ai')i. • c + c = 0 for Z2 coefficients. • Boundary operator • p = [v0,v1,…,vp] = i=0p[v0,…,~vi,…,vp] • e.g.: t = (e2+e3+e4) • e.g.: e0+ e1+ e4 = (v0+v2)+(v0+v1)+(v1+v2) = 0**Cycle, Boundary and Homology**• p-cycle: if pc = 0. • p-boundary: if there’s (p+1)-chain d, s.t. c=pd . • p-cycle group Zp = kernel (p). • p-boundary group Bp = image (p+1). • Hp= Zp / Bp • Each element of Hp represents an equivalent class. • c1 and c2 are in the same class if c1 + c2 is in Bp. • Trivial elements in Hpbounds (p+1)-chain**Handle and tunnel loops – definitions [Dey-Li-Sun 07]**• Let M be aconnected, closed, surface in R3. M separates R3into insideIand outsideO.Both I and O have M as boundary. • Handle:A loop onM whose homology class is trivialinH1(I) and non-trivial inH1(O). • Tunnel:A loop onM whose homology class is trivial inH1(O) and non-trivial inH1(I).**Nasty knots**• Consider a thickened trefoil • handle loop (green) • tunnel loop (red)**Handle and tunnel loops – existence**• Theorem (Dey, Li, Sun[2007]) • For any connected closed surface M of genus g in R3, there exist g handle loops {hi}i=1…g forming a basis for H1(O) and g tunnel loops {ti}i=1...g forming a basis for H1(I). • Furthermore, {hi}i=1...g and {ti}i=1...g form a basis for H1(M).**First algorithm for GR models[Dey-Li-Sun 07]**• Graph retractability assumption : A surface is graph retractable if both I and O deformation retract to a graph, denoted I and O, respectively.**Inner and outer cores**• I and O are disjoint core graphs, each with g loops : {KjI}j=1g and {KjO}j=1g and {Kj}j=12g all together. • How to compute I and O ?**Linking number**• J and K are two disjoint loops in R3. • In a regular projection, there are two ways in which J crosses under K. • The linking number, lk(K, J), is the sum of these signed crossings.**Linking number Theorem**• A loop on M is a handle iff lk(, KiI) 0 for at least one inner core and lk(, KiO)=0 for all outer cores. • A loop on M is a tunnel iff lk(, KiO) 0 for at least one outer core and lk(, KiI)=0 for all inner cores.**Minimally linked basis**• A loop is minimally linked if it links once only with one core loop. • Theorem : There exist 2g minimally linked loops, denoted {Jj}j=12g, such that lk(Ki, Jj)=ij. • Half of them linked with KiI’s, denoted {JjI}j=1g, are handle loops. • Other half linked with KiO’s, denoted {JjO}j=1g, are tunnel loops. • {[JjI]} j=1g form a basis for H1(I) and {[JjO]}j=1g form a basis for H1(O). Hence {[Jj]}j=12g form a basis for H1(M).**Topological algorithm**• Assume I and O are given. • Step1: Compute {Ki}i=12g using the spanning tree of I and O. • Step2: Compute a system of 2g loops on M, denoted {j}j=12g. (say by Dey-Schipper or Vegter-Yap linear time algorithms) • Step3: Compute lk(Ki, j) for all i and j. Let A be the 2gx2g matrix {lk(Ki, j)}. • A is the transform matrix from a minimally linked basis {[Jj]}j=12g to basis {[j]} j=12g. • A-1 = {aji} exists and has integer entries. • [Jj] = i=12g aji[i]. • Step4: Obtain Jj by concatenating i’s according to the above expression.**An implementation to compute system of handle and tunnel**loops with small size • Compute I and O • Basic idea: Collapse the inside (outside) Voronoi diagram to obtain I (O). • The curve-skeleton [Dey-Sun06] captures the geometry better. • Each skeleton edge (e) gets associated with an additional value called geodesic size (g(e)) indicating the local size of M. • Establish graph structure on the curve skeleton. • The geodesic size for a graph edge, g(E) = min{g(e): e is a skeleton edge in E}. • Issue: not always work for any graph retractable surface, e.g., a thickening of a house with two room.**An implementation to compute system of handle and tunnel**loops with small size • Compute core loops {Kj}j=12g • Compute the maximal spanning tree for I and O using geodesic sizes as weight. • Add the remaining edges, Ei’s, to form Ki’s. • Compute minimally linked {Jj}j=12g • Basic idea: compute Ji’s at different location indicated by Ei’s. • Let e be the skeleton edge with the smallest geodesic size in Ei. Let p be one of the vertices of the dual Delaunay triangle of e. • Compute an optimal system of loops by geodesic exploration and apply topological algorithm. • In our experiments, one of the loop in the system of loops itself satisfies the condition to be Ji’s.**A Persistence based algorithm [Dey-Li-Sun-Cohen-Steiner 08]**• A fast algorithm based on persistent homology introduced by Edelsbrunner, Letscher, Zomorodian[2002]. • The algorithm does not require any extra structure such as medial axis, curve skeleton, or Reeb graphs. • It works on a larger class of models. Both surface mesh and isosurface with volume grids can be input.**Filtration in persistent homology**• Filtration of a simplicial complex K is a nested sequence of complexes: • 0 = K-1 <K0 <K1 <…<Kn = K • Assume Ki - Ki-1 = i • Persistence homology studies how the homology groups change over the filtration. • In our algorithm, we use the pairing concept in the persistent homology.**Positive and Negative simplices**• Once a p-simplex is added to Ki-1, it is • Positive if it creates a non-boundary 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 '.**Pairing algorithm – pair ()**1) c=p 2)d is youngest positive (p-1)-simplex in c 3)while (d is paired and c Φ) do • Let c' be the cycle killed by the simplex paired with d • c=c'+c • d is the youngest positive (p-1)-simplex in c end while 4)if c is not empty, then is negative p-simplex and paired with d else is positive p-simplex.**Computing handle and tunnel loops**• Topological algorithm • Two refinements for improving loop quality. • Assume M, I, and O denote the simplicial complexes of surface, inside, and outside respectively; g is the genus of M.**Topological algorithm**• 3 Steps: • 1) Simplices of Mare added to the filtration, generating 2g unpaired positive edges; • 2) Simplices of Iare added, g previously unpaired edges get paired, each pair corresponds to a handle loop; • 3) Simplices of Oare added, the rest of g unpaired edges get paired, each pair corresponds to a tunnel loop.**Refinement 1**• For a negative triangle , 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) loop L()for as L1.**Refinement 2**• A handle (or tunnel) loop is found when a cross section of M get filled. • Cross sections of small size will get filled first if we add triangles in I and O to the filtration in increasing order of their geodesic sizes.**Computing geodesics – for refinement 2**• Geodesic size of an edge E =(A1, A2):geodesic distance between points A1' and A2' on M, where Ai'=Ai if Ai is on M; otherwise, Ai' is the closet point on M for Ai • Geodesic size size of a triangle t:max {g(e)|e is in t}**Entire algorithm**• 1) Compute geodesic size for edges and triangles in I and O; • 2) For each simplex on M, pair(); • 3)E = unpaired positive edges on M; • 4) In the order of increasing geodesic size, pair() for each triangle in I; • 5) if ( is negative and its paired positive edge is in E), thenoutput a handle: hi = L(); • 6) Do similarly as 4) and 5) to get tunnels.**Experiments**• We implemented our algorithm in C++. All experiments were done on a Dell PC with 2.8GHz Intel Pentium D CPU and 1GB RAM.**Feature Detection**• Compute handle (tunnel) features based on handle (tunnel) loops. • Sweep the handle (tunnel) loop until the length become too long.**Conclusions and future work**• A simple, topologically correct algorithm for handles and tunnels. • Mathematical proof of geometric qualities of the loops? • What about surfaces with boundaries? • Handletunnel software available from http://www.cse.ohio-state.edu/~tamaldey/handle.html