Litcius/Paper detail

RXMesh

Ahmed H. Mahmoud, Serban D. Porumbescu, John D. Owens

2021ACM Transactions on Graphics17 citationsDOIOpen Access PDF

Abstract

We propose a new static high-performance mesh data structure for triangle surface meshes on the GPU. Our data structure is carefully designed for parallel execution while capturing mesh locality and confining data access, as much as possible, within the GPU's fast "shared memory." We achieve this by subdividing the mesh into patches and representing these patches compactly using a matrix-based representation. Our patching technique is decorated with ribbons , thin mesh strips around patches that eliminate the need to communicate between different computation thread blocks, resulting in consistent high throughput. We call our data structure RXMesh : Ribbon-matriX Mesh. We hide the complexity of our data structure behind a flexible but powerful programming model that helps deliver high performance by inducing load balance even in highly irregular input meshes. We show the efficacy of our programming model on common geometry processing applications---mesh smoothing and filtering, geodesic distance, and vertex normal computation. For evaluation, we benchmark our data structure against well-optimized GPU and (single and multi-core) CPU data structures and show significant speedups.

Topics & Concepts

Computer sciencePolygon meshParallel computingData structureThread (computing)ComputationLocalitySmoothingComputational scienceLaplacian smoothingVertex (graph theory)T-verticesBenchmark (surveying)Mesh generationAlgorithmTheoretical computer scienceComputer graphics (images)Finite element methodComputer visionPhilosophyThermodynamicsGeographyGraphLinguisticsGeodesyProgramming languagePhysicsOperating system3D Shape Modeling and AnalysisComputational Geometry and Mesh GenerationComputer Graphics and Visualization Techniques