Stefan Gumhold,* Pavel Borodin, # Reinhard Klein # *University of Tuebingen, Germany # University of Bonn, Germany Intersection Free Simplification
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 2 Outline Introduction and Problem Description Related Work Spatial Data Structure Detection and Avoidance of Collisions Results Conclusion
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 3 Introduction Mesh simplification Original model (34834 vertices) Simplified model (3483 vertices) More simplification (1000 vertices)
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 4 Original model (34834 vertices) Simplified model (3483 vertices) More simplification (1000 vertices) Introduction Mesh simplification
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 5 Original model (34834 vertices) Simplified model (3483 vertices) More simplification (1000 vertices) Introduction Mesh simplification
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 6 Problem Description Original models Man with trousers and shirt (17060 vertices) Two nested spheres (1028 vertices)
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 7 Problem Description Simplified models with self- intersections Simplified to 600 vertices Simplified to 70 vertices
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 8 Problem Description Self-intersections detected and avoided Simplified to 600 vertices intersection free Simplified to 70 vertices intersection free
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 9 Related Work Edge contraction simplification Hoppe 1996 contracts two adjacent vertices performs no topology alteration vcvcvcvc v2v2v2v2 v1v1v1v1
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 10 Related Work Vertex pair contraction simplification Popovic & Hoppe / Garland & Heckbert 1997 generalizes the edge contraction the contracted vertices do not necessarily lie on a common edge vcvcvcvc v1v1v1v1 v2v2v2v2
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 11 Related Work Vertex pair contraction simplification Popovic & Hoppe / Garland & Heckbert 1997 allows to sew together unconnected components and to close small gaps allows topology modifications vcvcvcvc v1v1v1v1 v2v2v2v2
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 12 Related Work Quadric error metrics (QEM) Garland & Heckbert 1997 Fundamental error quadric Q f (p) measures the squared distance d of a point p to the plane of a face f. Each vertex v is assigned an initial quadric Q constructed as the sum of the fundamental quadrics of its incident faces weighted by their areas.
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 13 Related Work Quadric error metrics (QEM) Garland & Heckbert 1997 After contracting two vertices v 1 and v 2 the quadric of the new vertex v c is defined as Q c = Q 1 + Q 2. The location of new vertex v c is set in a way to minimize the error e = v T Q c v. This minimum error e is used to measure the error caused by the performed contraction operation.
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 14 Classical Simplification algorithm Initialization build spatial grid, insert vertices find close vertex pairs build queue, sorted by QEM Simplification loop extract operation with minimum error e if isValid (normal test) remove invalidated operations from queue perform operation insert new operations into queue
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 15 Related Work Avoidance of self-collisions during simplification Ronfard & Rossignac 1996: normal check only prevention of local self- intersections Staadt & Gross 1998: progressive tetrahedralizations prevention of self-intersections of the boundary surface of the tetrahedral mesh
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 16 Modified simplification algorithm Initialization remove initial self-intersections build spatial grid, insert simplices find close vertex pairs build queue, sorted by QEM Simplification loop
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 17 Modified simplification algorithm Initialization Simplification loop extract operation with minimum error e if isValid (normal test, collision detection / avoidance) remove invalidated operations from queue remove affected simplices from grid perform operation insert remaining simplices into grid insert new operations to queue
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 18 Spatial Data Structure Remove initial self-intersections Query 1:find all intersecting pairs of edge and triangle Find close vertex pairs Query 2:for given vertex find the closest not adjacent vertex Collision test Query 3:find all simplices in region affected by operation
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 19 Spatial Data Structure Search structure must support fast dynamic updates Regular grid (Zachmann 2001) average edge length as cell side length of grid keep track of average edge length during simplification rebuild grid, whenever average edge length increases by factor of two
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 20 Detection of Collisions Classification of simplices: 12 : contracted simplices are incident to both contraction vertices v 1 and v 2 1 and 2 : affected simplices are incident to one of the contraction vertices v 1 or v 2 0 : stationary simplices - all remaining simplices v2v2v2v2 v1v1v1v1
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 21 Detection of Collisions The affected simplices can cause two problems: We parametrize the vertex pair contraction operation over the time interval t [0, 1] : v j (t) = v j + t · (v c - v j ), j {1, 2} v2v2v2v2 v1v1v1v1 vcvcvcvc v2v2v2v2 v1v1v1v1 vcvcvcvc Intersection Inside-outside switch
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 22 Detection of Collisions Classification of collisions: hit collisions of the 1st kind between a simplex from 1 or 2 and a simplex from 0 hit collisions of the 2nd kind between a simplex from 12 and a simplex from 0 fan collisions between two simplices from 1 or two simplices from 2 v2v2v2v2 v1v1v1v1
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 23 Detection of Collisions Classification of collisions: contraction collisions of the 1st kind between a simplex from 1 and a simplex from 2 contraction collisions of the 2nd kind between a simplex from 1 or 2 and a simplex from 12 or between two simplices from 12 v2v2v2v2 v1v1v1v1
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 24 Detection of Collisions Lemma: Any collision between an edge and a triangle or between two triangles is preceeded by or coincides with a collision between a vertex and a simplex or between two edges. We have to check only collisions between a vertex and a simplex or between two edges. vcvcvcvc TsTsTsTs TaTaTaTa TsTsTsTs v1v1v1v1 vcvcvcvc TaTaTaTa TsTsTsTs v1v1v1v1 vcvcvcvc TaTaTaTa
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 25 Detection of Collisions Theorem: Any fan collision is preceeded by or coincides with a hit collision. Fan collisions and contraction collisions of the 2nd kind always coincide with another type of collision and therefore do not have to be tested v1v1v1v1 vcvcvcvc ea2ea2ea2ea2 ea1ea1ea1ea1 vsvsvsvs v1v1v1v1 vcvcvcvc ea2ea2ea2ea2 ea1ea1ea1ea1 vsvsvsvs vcvcvcvc ea2ea2ea2ea2 ea1ea1ea1ea1 vsvsvsvs
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 26 Detection of Collisions To reduce the number of different collision tests, we split the pair contraction into two phases: we drag vertex v 1 with fixed v 2 onto v c then we drag v 2 onto v c Only hit collisions of the 1st kind can arise.
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 27 Detection of Collisions Hit collision tests We detect hit collisions of the 1st kind by an intersection test between the time sweep of the affected simplex with the stationary simplex. titititi t = 0 TsTsTsTs v1v1v1v1 vcvcvcvc t = 1 titititi eseseses v1v1v1v1 vsvsvsvs vcvcvcvc t = 0 t = 1 v1v1v1v1 vcvcvcvc titititi vs1vs1vs1vs1 t = 0 t = 1 vs2vs2vs2vs2 vivivivi Time sweep of the edge ( v s v 1 ) Time sweep of the vertex v 1 Time sweep of the triangle ( v s1 v s2 v 1 )
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 28 Detection of Collisions Skipping invalid operations does not allow the generation of coarse meshes with low error. Original (17060 vertices) Without collision test (600 vertices) Prevention of collisions (600 vertices)
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 29 Detection of Collisions Skipping invalid operations does not allow the generation of coarse meshes with low error. Most operations of vertices close to the clothes won't be valid in a late stage. Only some parts (head) can be reduced further. Original Without collision test Prevention of collisions
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 30 Avoidance of Collisions Strategies to avoid the large number of invalid operations: Move the part of the mesh, into which the contracted part bumped. Look for a different target position, that does not cause an intersection. In this case the progressive representation of the model can be stored in the same way. Both.
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 31 Avoidance of Collisions Avoidance algorithm Look for a valid target location that does not cause a self- intersection. If a valid target location is found evaluate quadric error metric at new target position re-insert operation into priority queue.
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 32 Avoidance of Collisions Find a valid target location that does not cause a self- intersection. Not possible in some situations. In most situations there is a valid region of valid target positions. Find location in the valid region that minimizes the quadric error metric. Explicit computation is very expensive. We use approximate solutions TsTsTsTs v1v1v1v1 v2v2v2v2
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 33 Avoidance of Collisions 1st approximate solution: First Hit Among all collision times t i we determine the time t min of the first collision. As new target location we take the position at time t min of the contraction vertex causing the collision. If not valid, we repeat it up to n times. titititi t = 0 TsTsTsTs v1v1v1v1 vcvcvcvc t = 1
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 34 Avoidance of Collisions 2nd approximate solution: Barycentric Sampling We sample 14 possible target locations on the triangle ( v 1 v 2 v c ). Sort the sample locations by increasing QEM error and check for collisions until the first valid target location is found. v1v1v1v1 vcvcvcvc v2v2v2v2
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 35 Avoidance of Collisions Original vertices Without collision test 600 vertices, error=0.105 Prevention of collisions 600 vertices, error=0.129 Avoidance of collisions 600 vertices, error=0.118
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 36 Results Original model: woman with dress (19498 vertices)
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 37 Results The model simplified without collision test (370 vertices)
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 38 Results The model simplified without collision test (370 vertices)
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 39 Results The model simplified with collission avoidance (370 vertices)
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 40 Results The model simplified with collission avoidance (370 vertices)
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 41 Results Original model: man with trousers and shirt (17060 vertices)
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 42 Results Simplified model with self-itersections (600 vertices)
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 43 Results Simplified model with self-itersections (600 vertices)
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 44 Results The model simplified with collision prevention (600 vertices) The model simplified with collision avoidance (600 vertices)
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 45 Results The model simplified with collision prevention (600 vertices) The model simplified with collision avoidance (600 vertices)
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 46 Results Measurement of Hausdorff Distances (HD) Models Man WomanBunny No. of vertices: original No. of vertices: reduced HD: classical algorithm HD: collision prevention HD: first hit HD: barycentric sampling
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 47 Results Measurement of performance (sec / 1000 contractions) Models Man WomanBunny No. of vertices: original No. of vertices: reduced Time: classical algorithm Time: collision prevention Time: first hit Time: barycentric sampling
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 48 Conclusion First approach to globally prevent and avoid self- intersections during mesh simplification. We used vertex pair contraction, other approaches could be supported. No new operations introduced, therefore progressive transmission and LOD can be supported without any modifications. Generation of high quality approximations for models with close surface layers.
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 49 Future Works Avoidance of insertion into grid in regions where no collision can arise. Generalization for animated models.
Stefan Gumhold, Pavel Borodin, Reinhard Klein - Intersection Free Simplification University of Tuebingen University of Bonn 50 Thank you