Half-Edge Collapse

Half-Edge Collapse

3D Geometric Modeling 1 Geometric Modeling • Surface representations – Industrial design 2/55 Geometric Modeling • Surface representations – Industrial design – Movies and animation 3/55 Geometric Modeling • Surface representations – Industrial design – Movies and animation • Surface reconstruction/Visualization 4/55 Polygonal Representations • Stores the boundary of a solid – Geometry: vertex locations – Topology: connectivity information • Vertices • Edges • Faces 5/38 Polygonal Representations • Constant time adjacency information – For each vertex, • Find edges/faces touching vertex – For each edge, • Find vertices/faces touching edge – For each face, • Find vertices/edges touching face 6/38 Polygonal Representations • Typically assume the surface is manifold • A surface is manifold if, for every point, locally the surface is equivalent to an open disk 7/38 Polygonal Representations • Typically assume the surface is manifold • A surface is manifold if, for every point, locally the surface is equivalent to an open disk Locally manifold 8/38 Polygonal Representations • Typically assume the surface is manifold • A surface is manifold if, for every point, locally the surface is equivalent to an open disk Non‐manifold edge 9/38 Polygonal Representations • Typically assume the surface is manifold • A surface is manifold if, for every point, locally the surface is equivalent to an open disk Non‐manifold vertex 10/38 Winged Edge Data Structure N L N R N Left face E Right face P P PL R 11/38 Winged Edge Data Structure WingedEdge { WingedEdge nextLeft, nextRight, prevLeft, prevRight; Face leftFace, rightFace; Vertex prevVert, nextVert; } N L N R Face { WingedEdge edge; N } Left face Right face Vertex { E WingedEdge edge; } P P PL R 12/38 Winged Edge Data Structure • Given a face, find all vertices touching that face • Given a vertex, find all edge‐adjacent vertices • Given a face, find all N L N R adjacent faces N Left face E Right face P P PL R 13/38 Half Edge Data Structure NHE face Flip HE E PHE V 14/38 Half Edge Data Structure HalfEdge { HalfEdge next, prev, flip; Face face; Vertex origin; Edge edge; } Face { NHE HalfEdge edge; // part of this face } face Flip Vertex { HE HalfEdge edge; // points away E } Edge { PHE HalfEdge he; V } 15/38 Half Edge Data Structure • Very similar to WingedEdge Data Structure, but edges have unique orientation • Slightly more storage • Less conditional operations NHE • Assumes polygons are oriented face Flip HE E PHE V 16/38 Building a Topological Data Structure • Must connect adjacent edges/faces/vertices • Edges are critical in most data structures NHE face Flip HE E PHE V 17/38 Euler Characteristic VEFGG− + 2= − 2= χ ( ) • V: number of vertices • E: number of edges • F: number of faces • G: genus of surface (number of holes) 18/38 Euler Characteristic VEFGG− + 2= − 2= χ ( ) • V: number of vertices • E: number of edges • F: number of faces • G: genus of surface (number of holes) 8 12− 6 + = 2− 2 * 0 19/38 Euler Characteristic VEFGG− + 2= − 2= χ ( ) • V: number of vertices • E: number of edges • F: number of faces • G: genus of surface (number of holes) 4 6− 4 + = 2− 2 * 0 20/38 Euler Characteristic VEFGG− + 2= − 2= χ ( ) • V: number of vertices • E: number of edges • F: number of faces • G: genus of surface (number of holes) 16 32− + 16= − 2 2 * 1 21/38 Topological Operations: Hole Filling • Find a half‐edge whose flip is null • Use next and flip points to find next adjacent half‐edge with null flip • Repeat until back at original NHE half‐edge face • Create new half‐edges along HE Flip= null boundary and face containing E those edges PHE V 22/38 Mesh Simplification Create levels of detail (LOD) of objects: 23/32 Level of Details (LOD) Distant objects use coarser LODs: 24/32 Topological Operations: Edge Collapse 25/38 Topological Operations: Edge Collapse • Set origin of all edges pointing outwards from two vertices to new vertex and vertex to one of the half‐edges 26/38 Topological Operations: Edge Collapse • Set origin of all edges pointing outwards from two vertices to new vertex and vertex to one of the half‐edges • Set flip on outer edges to point to opposite edge 27/38 Topological Operations: Edge Collapse • Set origin of all edges pointing outwards from two vertices to new vertex and vertex to one of the half‐edges • Set flip on outer edges to point to opposite edge • Make sure half ‐edge pointer for edges point to correct half‐edge 28/38 Topological Operations: Edge Collapse • Set origin of all edges pointing outwards from two vertices to new vertex and vertex to one of the half‐edges • Set flip on outer edges to point to opposite edge • Make sure half ‐edge pointer for edges point to correct half‐edge • Update half‐edge for wing‐vertices 29/38 Topological Operations: Edge Collapse • Set origin of all edges pointing outwards from two vertices to new vertex and vertex to one of the half‐edges • Set flip on outer edges to point to opposite edge • Make sure half ‐edge pointer for edges point to correct half‐edge • Update half‐edge for wing‐vertices • Delete faces/edges/vertices 30/38 Topological Operation: Edge Collapse • Edge collapse preserves topology as long as the local Euler characteristic of the surface remains the same VEFG− + = χ() 31/38 Topological Operation: Edge Collapse • Edge collapse preserves topology as long as the local Euler characteristic of the surface remains the same VEFG− + = χ() VEFVEFVEF−+=−−−+−=−+ˆ( ˆ ˆ 1 ) ( 3 ) ( 2 ) VVˆ= −1 EEˆ= −3 ˆ FF= − 2 32/38 Topological Operation: Edge Collapse • Edge collapse does NOT always preserve topology 33/38 Detecting Unsafe Edge Collapses • Let N(v) be the set of vertices edge‐adjacent to v • Safe to collapseN if( v )1∩ ( N2 ) v = 2 v 1 v2 34/38.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    34 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us