Meshing Question - Trying to optimize my mesh.

 From:  Michael Gibson
1536.30 In reply to 1536.29 
Hi Will,

> I know it was said that unjoined parts would have non-matching
> edges when meshed, but I'm talking a SINGLE object here and
> hardly none (if any) of my fillet's topologies match the main surface(s).

You should end up with all matching points along every joined edge.

But let me clarify what this means exactly, it is not the same thing as having only quads touching other quads which I think is what you are asking for.

Here's an example output mesh - I'll focus on this highlighted polygon:



This is between joined surfaces, so extra work has been done to make this shared edge between the 2 surfaces get meshed with a matching point structure so that there are no gaps or holes in the mesh there.

The highlighted polygon is a 6-sided n-gon, here you can see some red lines for each edge of it:



Note the circled vertices above - these are the "matching" ones - the n-gon has a vertex at every spot of a vertex on the mesh of the upper surface.

Now take a look at what happens if the surfaces are not joined:



In the above case I separated the object into individual surfaces, so there is no knowledge of the "shared-ness" between those pieces. Each one gets meshed and optimized in isolation, resulting in different mesh structures. You can see that the polygon that used to be a 6-sided n-gon is now only a 5-sided n-gon, those lines show the edges there - notice how they do not match up to the other surface's mesh? That means that there are little holes and gaps between these 2 mesh objects, this is what I mean by "not aligned vertices".

When you have joined objects, the vertices of each piece are aligned so that there is a "water tight" alignment with no holes between each piece. That's the kind of matching that I am usually talking about.

The kind of alignment that you are asking for is another step yet beyond that. You want the u/v layout of the underlying quad grid of 2 adjacent surfaces to match.

I have done some work to make that kind of matching happen in certain circumstances, like surfaces of revolution that touch each other like a sphere touching a cylinder, will get that kind of extra alignment now:



But it is a lot more difficult to make this happen between more arbitrary surfaces that have different UV layouts to them.

> But Michael, is there ANY way that you'll be able to get the mesher
> to join major cross-sectional edges around fillets and curves without
> all of the dis-joins?

I do have some ideas on making this extra alignment happen in some more situations in the future.

But it is a really difficult job to provide it especially in cases where the pieces join at trim edges in the surface that are not aligned to a natural uv line of the surface.

If you want to post an example model where you wish the alignment was better, I could tell you whether it might be possible to improve that, or whether it won't be.


> I'm glad to see perhaps a bug was found (I'd like a chance at any
> patches put out as well!)

Right now I don't have a patch distribution system set up for the web site. I can send it to you if you e-mail me though. However, it does not improve this kind of alignment, it is a fix for using the "Avoid smaller than" parameter in combination with a tighter angle. I don't expect it to give you any benefits for what you are looking for right now.


> I know perhaps MOI isn't the right modeler to use when your
> target might end up being a game engine and clean geometry
> is a high priority

I am actually very interested in developing as clean mesh geometry as possible! MoI is really on the cutting edge of this already right now, but I do want to try and improve it even further.

If you can post some examples of your current results and describe a bit more what you wish that you got instead, that would help give me more test cases to work with for future tune ups.

- Michael