PDA

View Full Version : What is a "manifold mesh" really

IamInnocent
29-May-03, 05:25
I found on the knowledge base that a manifold mesh is one where, at least in one case, a single edge is shared by more than two faces.

In other words, in a manifold mesh, there are at one place more than two faces that meet at a single edge that is common to those faces.

Is this a good definition ?

Would it be enough for the decimator to work if we could find a way to undo the edge sharing I talked above or is there other considerations ?

S68
29-May-03, 09:30
It is 'the' definition, actually :)

Personally in the (rare) cases I end up with a manifold mesh I act like this:

Split the mesh in two (in edit mode, select right half vertices,press P KEY subdivide)

Try to decimate both.If one decimates the problem is in the other, if none decimates you are out of luck.

Go on dividing the 'undecimable' mesh in half untill you have a small mesh.

Now you can edit that mesh by hand and resolve the manifoldedness.

Stefano

IamInnocent
29-May-03, 09:58
It is 'the' definition, actually :)

So you would agree that the error message "no manifold" means that the mesh should not be a manifold, that 'no manifold' meshes are admissible...

I'm just making sure we understand each other here.
;)

Personally in the (rare) cases I end up with a manifold mesh I act like this:

Split the mesh in two (in edit mode, select right half vertices,press P KEY subdivide)

Try to decimate both.If one decimates the problem is in the other, if none decimates you are out of luck.

Go on dividing the 'undecimable' mesh in half untill you have a small mesh.

Now you can edit that mesh by hand and resolve the manifoldedness.

Stefano

That is an interesting adaptation of the search algorithm for a given number within limits...

This question arises from a discussion I have about a script to solve the problem. The author is taking that "manifold" must be understood as the concept used in topology while my guess is that the name came simply from the fact that some faces metaphorically "collect" into one edge.

Thanks Stephano

JarellSmith
29-May-03, 11:30
Hi IamInnocent

There was some discussion on this topic over at Blender.org a while back.

IamInnocent
29-May-03, 12:12
Hi IamInnocent

There was some discussion on this topic over at Blender.org a while back.

Hey guru!
:)

I wish I knew what he means by "no boundary"...

Also, in his example of a non manifold mesh is the edge at the middle common to the three faces. Then it would contredict the definition I was giving at the beginning...

Jean

tordat
29-May-03, 12:42
Also, in his example of a non manifold mesh is the edge at the middle common to the three faces. Then it would contredict the definition I was giving at the beginning...

What he wanted to say is that: this is a typical manifold mesh and you get the typical error massage with it "No manifold mesh"

Therefor your definition stays the right one.

JarellSmith
29-May-03, 12:52
Hi again.

"no boundary"
You are referring to the quote by JamesK.

I'm not really sure what is meant by "no boundary".
I thought at first that this referred to the mesh having an outer border, lik a mesh grid versus a mesh UVSphere, but I don't see how that would enter the realm of the discussion with regards to manifold meshes.

I think the confusion is arising from the terminology and using double negatives in the discussion, ie. not a non manifold mesh ;)

In fact, FlamePixel's post at Blender.org should have stated the error message as "non manifold mesh" (ie. it is NOT a manifold mesh)therefore can't decimate it.

So a manifold mesh which can be decimated is like a simple mesh grid where each edge has no more than 2 adjoining faces; whereas a NON manifold mesh is like a 'Y' or 'T' arrangement of faces like the example image posted by Joeri at Blender.org.

This is in agreement with the defintion posted at the Blender Knowledge base:
http://vrotvrot.com/support/showitem.php?faq_id=1329

I believe the text you referred to in your first post was:

"Title: How do I use the decimator and not get a 'Not a manifold mesh error'?
FAQ Text: The way the mesh decimator is implemented, it requires each edge to have at most two adjoining faces. If you have more than that, you'll get this error. "

In other words - for the decimator to function, it must be a manifold mesh in which each edge does NOT have more than 2 adjoining faces, otherwise you have a non-manifold mesh and need to identify and fix the offending part.

Does the deimator have any benefit other than reducing the poly count for exporting a model for use in a game?

Gimble
29-May-03, 22:39
I believe that Hos made a python script called 'boundary.py' that is very handy for identifying non-manifold portions of your mesh (thanks to MNME for the information):

http://www.ualberta.ca/~cwant/blender/python

Be warned that for large meshes, that it can take quite a while for a solution (still beats manual searching in my opinion though).

As a simple test, add an UVSphere, select 2 adjacent vertices and extrude them out a bit, then execute the boundary.py script.
You should see a new object which indicates the problem portion of the mesh.