Triangular Mesh Decimation Martin Franc, Václav Skala marty|skala@kiv.zcu.cz http://herakles.zcu.cz University of West Bohemia in Plzen Czech Republic
Contents Motivation Decimation Previous work Algorithm modification Results Conclusion
Motivation fast and interactive visualization of large and complex data (CAD, 3D scanner, CT, MRI) reduction of the number of triangles preserving important details of the model
Decimation W. Schroeder 1992 Simplification methods based on a specific mesh element removal vertex decimation edge decimation – edge contraction patch decimation – vertex clustering Fast and simple method Can be generalized to 3D
Decimation General scheme Non-trivial triangulation in 3D mesh element importance evaluation element removal arising “hole” triangulation Non-trivial triangulation in 3D
Decimation Vertex decimation vertex topology assessment importance evaluation the least vertex removal triangulation
Decimation Edge decimation Patch decimation edge importance evaluation the least important edge removal triangulation Patch decimation patch importance evaluation the least important removal
Previous work Vertex and edge decimation combination Parallelization vertices evaluation the least important vertex selection adjacent edges importance evaluation triangulation Parallelization independent set of vertices multithread programming (no critical sections)
Previous work Edge contraction criterion Independent set of vertices minimal length minimal surface area after triangulation Independent set of vertices independent set of vertices super independent set of vertices
Algorithm Vertices evaluation The least important one search topology assessment importance evaluation The least important one search vertices sorting (according to their importance) super independent set creation Vertex removal edges evaluation (optimal edge selection) consistency check triangulation
Data structure Winged edge modification
Implementation Symmetrical multiprocessor (shared memory) Windows NT Threads no critical sections as many threads as free processors procedure get number of free processors (P) divide a set of vertices onto P parts run P threads, each with its own subset of vertices Parallel section vertices importance evaluation vertices removal No load balancing
First results Speedup Time ratio of various parts of the algorithm
Algorithm modification 1 Vertices sorting removal remove vertices under some importance threshold only importance of a vertex (x) maximum vertex importance in whole set
Algorithm modification 1 Vertices evaluation topology assessment importance evaluation Vertices removal threshold function (bucketing instead of sorting) independent set of vertices edges evaluation triangulation
Algorithm modification 1 + Speedup – Higher approximation error – Independent set of vertices
Algorithm modification 2 Hash function basic function modification
Algorithm modification 2 Idea
Algorithm modification 2 Function coefficients Application of the principle of indep. sets vertices impacted by previous decimation step are moved to the end of the cluster
Algorithm modification 2 Preprocessing vertices evaluation clusters creation (according the importance) Processing of the least important cluster vertex removal triangulation new evaluation of surrounded vertices which are moved to the end of proper cluster
Results Mentioned approaches comparison
Results Time comparison (rough)
Results Example of non-trivial data
871,414 triangles 430,000 triangles 87,000 triangles Results Example of reduced data 871,414 triangles 430,000 triangles 87,000 triangles
Results Example of reduced data 137,072 triangles 13,706 triangles 6,854 triangles 1,248 triangles
58,328 triangles 29,000 triangles 6,000 triangles Results Example of reduced data 58,328 triangles 29,000 triangles 6,000 triangles
Conclusion Fast parallel algorithm for simplification of large triangular meshes Efficient sequential algorithm + non-manifold meshes reduction – simple triangulation function Future work triangulation method improvement decimation controlled by the approximation error volume decimation