Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Welcome to Software Development on Codidact!

Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.

Comments on Watertight Mesh Representation

Post

Watertight Mesh Representation

+4
−2

A watertight mesh is one which does not have holes, and for which each face has a designated inside and outside. Such a mesh can be "tetrahedralized", has a defined volume, and can be an operand in a polyhedral boolean operation.

I'm looking for a method to represent such watertight meshes that reduces the amount of invalid states or singularities. As an example of what I mean, consider a simple mesh of vertex positions and triplets of indices that represent triangles. This is a poor way to represent a watertight mesh because the set of representable meshes largely does not intersect the set of watertight meshes. As a somewhat opposite example, consider a convex hull described by a set of points. This representation has the opposite problem: while every representable mesh is watertight (for now overlooking singularities like a hull defined exclusively by points lying within the same plane), watertight meshes with concavity are not representable.

One possible solution would be to store a set of points, then a set of indices into these points that describe a convex hull that completely encloses the watertight mesh. In addition to these, store zero or more sets of indices that describe convex hulls to be subtracted from the first convex hull to add concavity. This would, with a few singularities, restrict representable meshes to the set of watertight meshes. Requiring each set of indices to contain at least 4 vertices would further reduce the number of singularities in this system.

Are there other ways to represent watertight meshes and operate on them? Possibly a more commonly used, better-researched, or more intuitive way? Common useful operations would include boolean operations or tetrahedralization/triangulation of the resulting mesh.

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.
Why should this post be closed?

5 comment threads

Winged edge (2 comments)
XY Problem? (1 comment)
Do you really just mean closed polyhedron? (4 comments)
Implicit Methods (2 comments)
2 days and no response, so -1 for the dump and run. (2 comments)
Implicit Methods
Derek Elkins‭ wrote over 2 years ago

I suspect this isn't really an answer to your question, but implicit methods can usually give some strong guarantees about being closed surfaces. For example, signed distance fields inherently can't have "gaps". They can have "singularities" but I don't think that's much of an issue in practice. These representations usually have very good compositionality properties so things like boolean operations are relatively easy to implement and work very well. The problem, and why I don't think this is an answer to your question, is none of this is working directly on a polygonal mesh. There are ways to go to and from meshes to signed distance fields, and isosurface extraction algorithms (SDF -> mesh) usually guarantee watertight meshes. However, converting from a mesh to a SDF and back will likely not produce the same mesh. Really, from the perspective of implicit methods, any mesh is an approximation of the desired isosurface, and so there is no unique mesh associated to an SDF.

Josh Hyatt‭ wrote over 2 years ago

Interesting. I feel this applies more specifically to isosurfaces than generalized meshes, but it's an interesting idea that could possibly extend to my use case.