|
|
||||||||||||||||||||||||||
|
People Research Publications |
Many
applications such as topology repair, model editing, surface parameterization,
and feature recognition benefit from computing loops on surfaces that wrap
around their `handles' and `tunnels'. Computing such loops while optimizing
their geometric lengths is difficult. On the other hand, computing such loops
without considering geometry is easy but may not be very useful. In this
paper we strike a balance by computing topologically correct loops that
are also geometrically relevant. Our algorithm is a novel application of
the concepts from topological persistence introduced recently in computational
topology. The usability of the computed loops is demonstrated with some examples
in feature identification and topology simplification. T. K. Dey, K. Li, J. Sun, and D. Cohen-Steiner. Computing Geometry-aware Handle and Tunnel Loops in 3D Models. SIGGRAPH 2008, to appear. HanTun software is available. Our algorithm computes a set of non-trivial loops called Handle and Tunnel loops in 3D models and iso-surfaces in volume data. The concept of handle and tunnel loops was introduced in an earlier paper On Computing Handle and Tunnel Loops, (also see Web-page). The input to our algorithm are a closed surface mesh and associated volume mesh. For a surface mesh, we use DelPSC software built in our group to get the volume mesh. While for the case of iso-surfaces, the volume mesh is obtained almost freely.
Our method is based on the Topological Persistence ([Edelsbrunner, Letscher, Zomorodian 2002]) which pairs simplices in a filtration of the complex. A positive 1-simplex simplex which create a cycle is paired with a negative 2-simplex which kills a cycle. In our topological algorithm, we first add all the vertices on the surface, then the edges. Pairing algorithm will finds all the positive edges and negative ones. All surface surface triangles are then added to pair with the positive edges. Some positive edges are left unpaired. These unpaired edges will be paired with the volume triangles later to get handle and tunnel loops. Next, we add triangles from the volume mesh. For handle loops, we add triangles from inside. A handle loop is generated when a negative triangle from inside is paired with an unpaired edge on the surface. Similarly, for tunnel loops, we add triangles from outside. A tunnel loop is generated each time a negative triangle from outside is paired with an unpaired positive edge on the surface.
This topological algorithm produces topologically correct handle and tunnel loops but may not be geometrically meaningful. We then propose two refinements: Refinement 1: For a negative volume triangle, the pairing algorithm actually expands a loop till it reaches an unpaired edge. In refinement 1, we choose the loop when it lies completely on the surface for the first time. In this way, we get geometrically better loops.
Refinement 2: Our refinement 2 is based on that a handle or tunnel loop is generated each time a cross section of the surface gets filled. In order to get loops of small size, we want the small cross sections getting filled first. To this end, we compute the geodesic size for all the volume triangles, and add them in increasing order of their geodesic size.
Please find more examples in the video. The HanTun software based on this result is available. |