When must I have a manifold mesh?


#1

I want to use these tools to simplify meshes made from survey data. That will be “2.5 D” data, which means there are no faces whose normal points below the a flat plane. These are ground surfaces with no “caves” or “coves”. Anyway, they will have holes and boundaries. I read that the simplification functions want manifold surfaces, but then I saw the bunny example with boundary preserved at the feet. I can deal with splitting up surfaces to eliminate holes, but did I understand it right that the mesh does not have to forma watertight shape to use simplification?
Are there other areas that must have a manifold shape to work correctly? My surfaces always stop somewhere, but I could create the “skirts” and “cap” to form a manifold mesh, as I do when preparing stl for 3d print.
I happen to be a civil engineer that programs and 3d prints, so this library is new to me and looking really useful. Surface simplification is something no civil industry solution does well. Seems like this one may be a gem.


#2

well, I tried some tests today and got really great results.
I loaded a 650k tri count mesh from obj file, and did this:
//simplify mesh
DMesh3 mymesh = builder.Meshes[0];
Reducer r = new Reducer(mymesh);
r.SetExternalConstraints(new MeshConstraints());
MeshConstraintUtil.FixAllBoundaryEdges(r.Constraints, mymesh);
System.Console.WriteLine(“simplifying mesh.”);
r.ReduceToTriangleCount(mymesh.TriangleCount / 3);
The result was flawless, in terms of preserving my holes and outside border without me having to tell it anything about them. My obj file had verts and tris, no normals or textures.
The resulting simplified mesh did not have missing tries, or spikes or anything implying bugs.
This is good stuff!!
Now to explore the AABB tree and see if that does better than my KD tree for finding tris a ray hits.
My current tools also save my KD tree in surface file, so I wonder if this library is fast enough to just build the AABB each load. I’ll see. I’m assuming it does not build that til I tell it to, but I am learning what is done automatically so I might be wrong. thx