Meshing ... tests and wishes
 1-11  12-31  32-51  52-69

Previous
Next
 From:  Michael Gibson
2451.32 In reply to 2451.31 
Hi Micha,

> (Rhino "o" model - Mesh#6.3dm)
> 33° -> "96 triangles were converted into 48 quads."
> 22° -> "226 triangles were converted into 113 quads."

It looks like these are also tuned up to at least some degree for the next v2 release - in the current Jan-19 release with Quads & Triangles, these currently generate these number of polygons overall:

33° -> 635 polygons
22° -> 1211 polygons

In the next v2 release instead these generate a lower number of polygons (some more quads):

33° -> 608 polygons
22° -> 1163 polygons

However, MoI's mesher only creates quads when the quad is a "natural quad" that is aligned with the UV grid of the surface, it doesn't just create any possible quad that may be found by combining any adjacent 2 triangles because that tends to make for somewhat odd looking results in many cases.


I'll see if I can think of a good way to add centroid triangulation as a checkbox option. I kind of hate getting such a huge array of options though, it tends to make the UI much more complex. But I guess in this case since the dialog can collapse to simple version I maybe shouldn't worry about it so much for this.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Micha
2451.33 In reply to 2451.32 
Hi Michael,

here an other issue or example (mesh#8), where could be possible an optimization. I create this object at MoI, it's a first try for a railway sleeper for a visualisation of a train station.
My screenshot shows the unfilleted object that is good meshed and the filleted version with two issues - a large kink, also visible at smaller mesh angles like 16° and missing quads at the big top surface that goes around the sleeper.
It could be nice, if the meshing of the fillet would be determinated by the top surface. But this isn't new, you told me:

"I think it is going to be possible for me to do some work in the future to try and form the initial UV quads of a fillet after the "main" surfaces have been done and in some situations it may be possible for me to make a better initial structure for the fillet that matches an adjacent surface, but probably only when there is a plane to one side of the fillet since matching to pressure from multiple sides of curved surfaces is probably not going to work."

So, maybe this is one more example for a know issue only. But I have the feeling, the big kink at 16° should be avoided without additonal adjusting. ;)


  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
2451.34 In reply to 2451.33 
Hi Micha - the big kink at 16 degrees happens because of the curvature of the fillet surface is quite shallow in the longer direction, which I highlight here:




Since the surface is only gently curved in that direction, an angle of 16 degrees does not cause the fillet surface itself to become subdivided.

As I've mentioned before, if you have a situation where a surface does not get subdivided but its boundary edges do, it can lead to these kinds of kinks.

There isn't really any bug here - to solve the big kink you need to do something to cause additional subdivisions of the surface.

The typical method for that is to decrease the angle parameter until it is less than the angle of that shallow curvature for that long direction on the fillet - that will solve the problem. For example try using an angle of 12 instead and your kink problem will be greatly reduced. As you go to a tighter angle yet it will continue to be reduced.

Another way you can solve it is to use the "Divide larger than" setting to force that shallow long fillet piece to get subdivided. For example with Angle 16, try entering a value of 20 for "Divide larger than", and it will force any polygons longer than 20 units in size to become additionally subdivided - that will force additional subdivisions of the surface and again solve the problem.

When you see this problem, it is caused by a surface getting a coarse mesh on it, and the solution is always going to be to force additional subdivisions...

I think that a "Chord height" tolerance value which I am also planning on adding would be a pretty good parameter to help in these situations as well.

But basically if you want to improve the tessellation here, you need to manipulate the settings to produce the result you want - normally the solution is to just make a tighter angle but if you want to avoid that you will need to use some of the other settings instead of angle alone on shallowly curved things.

Keep in mind that 16 degrees is a rather coarse angle, the default that MoI uses for angle is 12, which is already somewhat coarse to start with.

- Michael

EDITED: 5 Mar 2009 by MICHAEL GIBSON


  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
2451.35 In reply to 2451.34 
Hi Micha, just to give you a better idea on how coarse 16 degrees is (and to better illustrate what is happening), here I have extracted that fillet piece and viewing it from the side where it is curved, I have placed 2 line segments underneath it which have a 16 degree deviation between the lines:




As you can see, the fillet overall does not really bend as much as those line segments bend with respect to one another - that's why an angle of 16 degrees does not cause that fillet to be subdivided in that direction, it is within that angle tolerance.

Again also notice that the angle between the lines is very noticable - that is because 16 degrees is a pretty coarse angle! As you can see lines that are at 16 degrees to one another do not look very much like a smooth curve.

When you generate a coarse mesh you can get that kind of "non-planarity" to n-gons which is what causes those kinds of kinks.

- Michael

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Micha
2451.36 In reply to 2451.35 
Thank you for the hints. Also I'm very courios for the "Chord height" tolerance value.

I play with the options "devide larger .." and run in an other issue. I enabled "curved", but the upper surface is devide in the direction without curvation too. My wish here is a fourth option (planes, curves, all) like "curved UV", so that the upper surface wouldn't devided in the not curved direction of the red arrow. Maybe a fourth option isn't needed and this feature could be implemented for the exist "curved" option.

General I miss quads at the upper surface like the object without fillets show it. I marked two critical areas. So, it's not only a question for the polycount, also for the look.



Also nice would be, if the polygon edges of the polygons could go straigt upward. But maybe that could be done by a inteligent mesher with a sense for beauteousness only. ;)
I know, you like a simple interface, but I could imagine, that it could useful to set independent parameters for "divide larger than .." of curved and plane surfaces.
Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
2451.37 In reply to 2451.36 
Hi Micha,

> I play with the options "devide larger .." and run in an other issue.
> I enabled "curved", but the upper surface is devide in the direction
> without curvation too.

Yeah, the "curved" option will apply the division to any surface that is not planar, and will divide in both directions.

I think that the chord height option will work better for this particular thing rather than having another variant of "Divide larger than".

That is basically what will be useful about a chord height metric - directions that are flat will already satisfy the chord height metric. By the nature of that metric it only applies to curved areas.


> General I miss quads at the upper surface like the object
> without fillets show it. I marked two critical areas. So, it's not only
> a question for the polycount, also for the look.

Well, you've used an angle of 100 degrees in your screenshot there, you should generally expect to get a jagged look to your object with such a coarse angle, no surprise about that!

Re: quads - as far as I can tell the same thing that I described earlier in this thread applies here - you're not getting quads because the initial UV quad layouts of those surfaces do not align, here is a link back to that explanation and illustration again:
http://moi3d.com/forum/index.php?webtag=MOI&msg=2451.6


> I know, you like a simple interface, but I could imagine, that
> it could useful to set independent parameters for "divide larger
> than .." of curved and plane surfaces.

The separate chord height metric will basically allow for something pretty similar to that since it essentially ignores planes. So that would let you use "Divide larger than" and set it to only apply to planes, and meanwhile use Chord height separately which will only apply to curved areas.


> Also nice would be, if the polygon edges of the polygons could go
> straigt upward. But maybe that could be done by a inteligent
> mesher with a sense for beauteousness only. ;)

I'm not quite sure what you mean by striaght upward? But yes unfortunately many things that would be nice to have tend to require a kind of "artifical intelligence" which is rather difficult to code. Maybe some day! :)

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  DannyT (DANTAS)
2451.38 
Hi Michael and Micha,

I've been following this thread with interest, I am not by all means a meshing expert, my question is, does model geometry/surfaces play a part in good meshes, the reason I ask is
that I noticed Micha has modelled the top of railway sleeper with one surface, typical of a poly modeller, as I've learnt from the forum.
Would it be better in the meshing sense to model all the fillets as fillets instead of a single spline?

I've attached Micha's railway sleeper as I would have modelled it, it is the third model along, hope you don't mind.
Does this make a difference ? Just curious and educating my self.

Thanks
~Danny~
Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Micha
2451.39 In reply to 2451.37 
The chord height options sounds very interesting. I'm curious for it.

Straight upward means something like this ...


... 100 degree - I set this high angle because I tried to get control only by the devide option. I'm quite happy with the result, only the missing quads. The initial uv layouts could be alligned, if fillet and top surface would be created per sweep allong a side curve. I understand.

I tested how good could be a mesh (#9) created only by "devided ..". I wonder me, that the right surface show some triangles. The initial uv layout should be quite good to create a mesh of quads only or?



Or here - additional polygons at the lower edge ...

... and from down view

... also "avoid smaller than" 2 dosn't help.

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
2451.40 In reply to 2451.38 
Hi Danny, that can actually help somewhat to have it structured the way you show there, with more of a partitioning between different regions of that long surface rather than just one long single piece.

With a long single piece that goes through a lot of bends, what will happen is the mesher will attempt to fit a regular uniform mesh on it but will have to give up on that since it would take too many polygons to do a completely uniform evenly-spaced mesh across the whole thing.

When you have it separated out into more individual regions like you have done there, that can help each section to get a uniform base mesh on it, which can help to avoid adaptive subdivision of the mesh.

Adaptive subdivision is the kind of thing shown here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=2379.3 which will divide only certain areas of the surface into smaller pieces instead of having a totally uniform division throughout the entire thing. You won't get simple quads anymore in areas where adaptive subdivision happens, where there is a transition from one level of subdivision to the next.

But at any rate, some of these issues are things that can come into effect with any kind of model when you want to make a coarse, low-polygon version of it that doesn't have odd things sticking out from it. Coarse meshing and jagged shapes kind of tend to go along with one another, so it can take some targeted manipulation of the meshing parameters to get low polygons without too many artifacts. That can be kind of a separate issue from the modeling technique used since it applies to a wide variety of models.

- Michael

EDITED: 5 Mar 2009 by MICHAEL GIBSON

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  DannyT (DANTAS)
2451.41 In reply to 2451.40 
Ok thanks Michael, clear now :)

Cheers
~Danny~
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
2451.42 In reply to 2451.39 
Hi Micha,

> Or here - additional polygons at the lower edge ...

Like I mentioned earlier in this thread, it can help for you to switch to Output:N-gons which more clearly shows you where the polygons are coming from.

So for example, with the parameters that you show there if you switch to Output:N-gons, you can see this (viewing from the bottom looking upwards):




Notice how the ngons are not aligned?

In general if you are confused about why you are getting triangles in a particular structure, I would encourage you to switch to Output:N-gons to see how the n-gons are formed. Any place where an n-gon is formed with more than 4 points in it, will end up with that being converted into triangles when you have Output:Quads & Triangles mode.

Now as to why they are divided differently - that is pretty simple, it is because those surfaces have different lengths, here I have discarded the other ones, and you can see that the veritcal one is trimmed back and is not as long as the bottom one:



Because they are of different starting lengths, the longer one gets something like one extra division on it when they get their uniform grids.

I can understand that it seems like they should align like a voxel grid would align - unfortunately it is not feasible for the mesher to use that kind of "intersect with world grid" method because it would only work well on things that happened to be made of planes that were aligned with the world axes. It would produce strange results on anything that was angled.

One of the things that you are asking a lot about are special parameters or things that would help out for a specific model. I can understand that, but just keep in mind that there are a really wide variety of models that the mesher needs to be able to process, there are often all kinds of things that would work great for just one particular kind of model, but that is just not generally practical. Those kinds of things would help you out in one situation and then be really weird and cause problems in a thousand other situations...

- Michael

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
2451.43 In reply to 2451.39 
Hi Micha,

> The initial uv layout should be quite good to create a mesh of quads only or?

No, not good enough to match the parameters - whenever you see adaptive subdivision it means that the initial quad polygon in that area did not match the tolerance and needed to be subdivided.

That's the _only_ reason why things get adaptive subdivision on them...

The part that makes the initial grid has some limits on it to try and avoid creating too huge of a uniform mesh. You can imagine for instance that trying to do a uniform mesh on an object like the one shown here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=2379.3 would make for a huge number of polygons.

Also if the surface has varying curvature throughout it like the one you show there, it is not likely to get a dense enough initial grid to avoid all adaptive subdivision, the part that does the initial gridding is more focused on getting a "perfect" initial grid on uniformly curved objects like a cylinder or sphere. It is generally assumed that something with varying curvature may need adaptive subdivision in areas to put more polygons in areas of tighter curvature...

One thing I've been thinking of is possibly adding a setting that would let you turn off adaptive subdivision entirely, that would probably be useful for things like this.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
2451.44 In reply to 2451.39 
Hi Micha,

> Straight upward means something like this ...

I see - of course that would mean making more vertices and more polygons as well instead of keeping the polygon count as low as possible.

It's unfortunately difficult to do this kind of a thing and still keep things all connected overall.

For example making those Straight upwards lines that you show there would mean inserting new vertices on the bottom edge, which means the face flat on the bottom would also need to be altered by that as well.


In the future I do want to work on some more ways to divide a big n-gon up into triangles, but it is pretty hard to do it by inserting more points along the outer boundary since it has this ripple effect of modifying other faces. When you get many faces trying to modify each other at the same time it becomes a big problem. I can more easily add points to the interior of an n-gon which is what happens with centroid triangulation.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  DannyT (DANTAS)
2451.45 
Sorry guys, I just have one more question Michael, I don't understand why a flat planar surface should be meshed since it's dead flat.

---------
~Danny~
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Micha
2451.46 In reply to 2451.43 
Michael wrote:
"One thing I've been thinking of is possibly adding a setting that would let you turn off adaptive subdivision entirely, that would probably be useful for things like this."

That could be quite useful, since the adaptive meshing can't be controlled yet. Adaptive meshing - that sounds for me like "max error between mesh and NURBS" and could be nice to control the amount of adaption.

Here an example how a meshing could be looking without adative subdivision.



Since the MOI mesher is the best NURBS mesher it could be nice to get full control of the engine, fine tuning for mesh freaks. ;)

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
2451.47 In reply to 2451.46 
Hi Micha - I guess maybe it would help if I knew more of the purpose that you are using your meshes for.

A uniform mesh does have a more beautiful topology if that is the only thing that you are looking for above all else. But at the same time it can have a more ugly shape, more jagged in areas that are curved and normally a higher polygon count than necessary on things with variable curvature since flat areas get the same density as curved areas.

For example notice how coarse the rounded peak of your result is:



Without being able to add local subdivisions just to that area, it results in a very jagged shape there, which is ugly when rendered or viewed in profile, etc...

So except for very special purposes that kind of mesh that you show there is usually worse than one with adaptive subdivision. If you are interested in low polygon count, efficient structure, and making a good looking shape that provides details in curved areas, then those are all things that are going to be negatively affected by no adaptive subdivision.

So that's something to keep in mind...


But yes there are times when people do want clean topology over all else, so for those situations a disable adaptive subdivision would be useful.


Having no adaptive subdivision at all tends to work the best when the shape has totally uniform curvature such as on a sphere or cylinder. That's when a fully uniform mesh does a fine job of fitting the shape properly and efficiently - and in fact you should have probably noticed by now that MoI already does provide that kind of uniform meshing on these kinds of uniformly curved surfaces.


> Adaptive meshing - that sounds for me like "max error between
> mesh and NURBS" and could be nice to control the amount of adaption.

Basically, that's what all the existing meshing parameters do - control the amount of adaptive localized refinement. They also play a role in determining the initial base mesh, but after the base mesh is created then they totally control the "amound of adaption" - for example any polygon that has an angle greater than your given angle parameter will get broken down into smaller pieces - that is exactly what adaptive subdivision is.

So you already have a way to control the amount of adaption - that's all the existing parameters available to you. What I'm talking about is a checkbox that disables any adaptive refinement at all and will only use the base mesh, that would probably help you get the regular meshing you seem to want in some cases, however just be aware that for many purposes such things will actually be worse in shape (or higher in polygon count to make a good shape) as I described above.

- Michael

EDITED: 6 Mar 2009 by MICHAEL GIBSON


  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
2451.48 In reply to 2451.45 
Hi Danny,

> Sorry guys, I just have one more question Michael, I don't
> understand why a flat planar surface should be meshed
> since it's dead flat.

Sometimes people are interested in getting regularly shaped polygons for specialized purposes. Like for example if you plan to deform the mesh by doing displacement painting on it in zbrush, it is good for the polygons to be diced down to be of a more uniform small size even in areas that are planar (if you are going to do displacements on that planar area).

For other purposes like doing further polygon editing of the mesh, people are interested in getting more regularly shaped polygons with a more aligned topology between all the pieces. Sub-d modeling tends to work best with quad polygons also, so that's why that can come up.

For the most common use of just rendering the mesh, then yeah you don't need planar surfaces to get more polygons than necessary for that.


It all depends on what you are going to be doing with the output data - there are just a lot of varied things that the data is used for, there can be different kinds of meshing needed for these different purposes...

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  -ash-
2451.49 In reply to 2451.47 
> A uniform mesh does have a more beautiful topology if that is the only thing that you are looking for above all else.

I think this would be very useful if you are taking MoI output into a poly modeler for further work - especially if you want to use it as a basis for an SDS model. In this case how the model looks straight out of MoI is not really an issue.

Regards
Tony

(aka HamSoles)

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
2451.50 In reply to 2451.49 
Hi Tony - one tricky thing with using the output for sub-d modeling is that it only works very well for certain special cases, like with just a single untrimmed surface, or a surface of revolution that has not been booleaned.

The way MoI's mesher currently works focuses on making a low polygon count with n-gons. But n-gons can be bad for that specific purpose of using them as a sub-d cage, especially when the n-gons are particularly big and have concave outlines.

Instead of one big n-gon for a planar cap on something for example for sub-d you would rather have a different style of meshing with all surfaces (including planar ones) diced up into regular sized quads, without regard to the underlying surface's UV layout.

That really needs a much different meshing method to make that work well for the general case of trying to convert something like a whole solid to a sub-d... Things would need to be tiled in a pattern that radiated out from the trim edges rather than starting with quads from the underlying UV surface grid which is how the mesher currently works. The way the current mesher works is good for other purposes though like rendering and getting an accurate mesh for STL prototyping, etc... But for sub-d it is not particularly a good fit right now except for limited cases.

Some more info and illustration here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=1244.48

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  PaQ
2451.51 In reply to 2451.50 
I remember this product,

http://www.npowersoftware.com/booleans/pboverview.htm

They are trying to output quad mesh sds friendly from booleans operations, it was a smart attempt, but not working that well on something more complex than an hole in a cube. (and even the provided examples are not that good if you close up the object a little bit ...)
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged
 

Reply to All Reply to All

 

 
Show messages:  1-11  12-31  32-51  52-69