Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tetrahedral decomposition? #42

Open
yuvaltassa opened this issue Apr 25, 2024 · 3 comments
Open

Tetrahedral decomposition? #42

yuvaltassa opened this issue Apr 25, 2024 · 3 comments

Comments

@yuvaltassa
Copy link

yuvaltassa commented Apr 25, 2024

Have you considered a version of CoACD that uses pure tetrahedral decomposition? Tets are, after all, the quintessential convex mesh 馃檪.

Tetrahedral meshes have a strong Finite Element theory supporting them, and are otherwise useful in many circumstances (e.g. very cheap, non-iterative colliders). TetWild and fTetWild are powerful, but they are not designed to give the user a precise, variable-resolution "coarsening" knob, that will dramatically reduce the number of tets at the cost of error w.r.t the surface mesh, which is what CoACD is so good at.

We'd love to hear your thoughts on this.

@SarahWeiii
Copy link
Owner

I think TetWild and fTetWild have some parameters to control the precision of the results, such as control_energy and the coarsen option.
And in my understanding, tetrahedral meshes are typically used in soft body simulations, while ACD is usually for rigid body simulations. I am curious about which scenarios would require users to generate a group of tetrahedral parts for an object.

@yuvaltassa
Copy link
Author

It is true that (general) convex meshes are good for rigid body simulation, but that's on CPU, where branchy-loopy algorithms are welcome. However, on accelerator architectures like GPUs, the tradeoffs are very different. A relatively large number of parallel, fixed-cost tet-tet collisions can be significantly faster, as this is exactly what those architectures are designed for.

Last we checked (f)tetWild was not good at low-resolution remeshing. We'll check again and report back, maybe something has changed.

@yuvaltassa
Copy link
Author

Update: We checked. There is no way to convince (f)TetWild to generate coarse tetrahedral meshes. The only viable route is to decimate the surface mesh first, but of course in this case the remeshing algorithm doesn't really have all the information required to create the best possible coarse decomposition.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants