I am not quite sure what non-manifold geometry is. I thought non-manifold geometry was just floating vertices and hole in a mesh. From my experience this is not always the case however. What is non-manifold geometry and what are the types of it and how do I avoid it? Is there a case where it is acceptable?
Non-manifold geometry is essentially geometry which cannot exist in the real world (which is why it's important to have manifold meshes for 3D printing).
As JulianHzg points out in the comments, intersecting geometry (faces sticking through other faces) is not technically non-manifold geometry on it's own. However it will often cause the same issues as non-manifold geometry, i.e. confused volume calculations.
Non-manifold geometry can be problematic, because it complicates some tools & operations:
Among many other cases.
You might want non-manifold geometry in some kind abstract model (as non-manifold geometry cannot exist in the real world), or as an approximation of a very thin object (e.g. paper, leaves, etc.)
Common causes of non-manifold geometry:
Fixing non-manifold geometry:
You can select all non-manifold geometry with CtrlShiftAltM.
Internal faces can be selected by pressing 3D view > Header > Select > Internal Faces in edit mode.
Loose geometry (elements without any other connecting elements) can be selected with 3D view > Header > Select > Loose geometry. Note that it only selects vertices, edges, and faces depending on the current selection mode.
Other useful tools for repairing non-manifold geometry:
Since a common cause of non-manifold geometry is lack of thickness, the solidify modifier can also be useful.
How To Find Non Manifold Areas in a Mesh
While in Edit mode, you can select all non manifold areas with CTRLSHIFTALTM.
One type of non manifold situation is when you have overlapping edges.
For example, I'd frequently have a mesh that'd look fine, like this:
But then when I checked for non manifolds, I would get an edge highlighted like this:
I discovered the reason this edge was highlighted was because there were overlapping edges.
Once you find that edge, delete it, then put the dragged vertex back into place. One trick I discovered about how to put the vertex back into place easily is when you are first dragging it out out of place, only drag it on one axis, rather than freely in 3, because then you only have to snap it back to that one axis, rather than 3.
When Non-Manifold Geometry is Useful or OK
Ok, I haven't found any uses for interior faces or overlapping edges, but I find open ended meshes and intersecting ("sunken") sub-meshes to be useful in some situations, provided you are:
This is probably mostly useful for lowpoly modelers, though I use it with solid subsurf stuff sometimes as well. Here is a device I've been working on for a modding project:
It's made up of several mesh object. The front iPhone-colored-specular-map-showing one is protruding into the rear cargo unit so that no gaps are visible. If we hide the back one with the hatches, we can see:
There isn't actually a inside-rear to this part. Also you can see that the sidelights also have open edges sticking into the head mesh, and that the grate-things are protruding into the head a little too despite being closed objects. In this case, users probably aren't going to be able to get close enough to the object that modelling any more detailed connections between things would be meaningful.
One more thing to note about open edges like this: you can actually loop select them. If you were to fill the hidden area with an N-gon or an efficient triangle spread, you wouldn't be able to loop select anymore, which I find kind of annoying.
When making environmental static meshes for games and such, some designers go for designs like this to save polygons:
(In these examples, presume that the giant yellow UV map is some ugly/error texture that the users are hopefully never to see, and the other three colors are proper textures)
The problem with this design, is that each tiny error in meshing by the map designers can cause a huge immersion-breaking mess for the users:
From my experience wandering artificial environments, these errors, like software bugs, are not so much a 'if' as a 'how many, how bad, and where' situation.
It does cost some extra polygons, but I find I much prefer making a backing hull for this kind of mesh:
In this case, after extruding the top and bottom edges and creating the rear face, I created an N-gon in each side loop and then triangulated it for a minimal fill. I unwrapped the UVs on these faces and shrunk them to a tiny dark spot in the corner of the map. If I were making lightmaps, I'd try to minimize all these faces to a combined pixel or so as well.
The result when looking at the messed up seam:
I find the pretense of solid mass here much less immersion breaking, even though the unintended faces are minimally texture. Even when you look dead on through the gap:
You can barely even see the 'bad texture' texture.
As a final note, some game engines -- or at least later versions of Unreal engine as of UDK a bit before UE4 was announced -- require solid, enclosed meshes to make their magical static-mesh-occlusion-optimization-magic work, which is important for managing framerate and so when putting maps together.