Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Efficient topological data structure for meshes on CUDA?

In a university project my group's task is to implement Mesh Based Surface Tracking on CUDA. For that, we need a topological data structure for triangular meshes.
In a CPU implementation I would use something like the half-edge or winged-edge data structure, but on CUDA this leads to randomly jumping through global memory, which is very slow. The Topology of the mesh will be changing very often, so the data structure needs to be able to change dynamically as well.

Is there a data structure for CUDA that fulfills these requirements?

like image 850
maddin45 Avatar asked Feb 28 '26 03:02

maddin45


1 Answers

Not specifically for CUDA, but this blog post talks about how you can implement a 'vector hosted' half-edge data structure. This is essentially just a half edge data structure implemented with vectors, but with unused elements in the vector buffers marked as 'dead', and these dead entries linked with free lists in such a way that it's trivial to find and reuse dead entries when needed. The free lists enable you to avoid general memory allocation for element nodes, and the fact that it is all 'hosted' in vectors ensures that stuff is kept nearby in memory.

like image 73
Thomas Young Avatar answered Mar 01 '26 23:03

Thomas Young



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!