Third party mesher for Rhino

Hi guys,

I am looking for an alternative polygon mesher for Rhino.
Ideally would be a mesher that is able to mesh a polysurface across of the single surfaces.


All Meshers inside Nurbs apps I have seen work based on the existing patch layout of Nurbs surfaces. Just a few mesh modelling programs allow for quad remeshing, they disregard the underlying patch structure of the input. Zbrush currently does this best, but if you only need remeshing it might be an expensive choice.

Hi Hifred,

got your point, that there are only a few external tools which are able to mesh patch independently.

The Rhino mesher seams to mesh the patches accordant to their NURBS density/topology

This is the NURBS data I am dealing with. Quite “patchy” :smile:

This is the resulting mesh. You can clearly see that the Rhino mesher is just “interpreting” the NURBS data and is adding triangles at the connetion points:

My aime is to have an even light mesh which I want to use for rendering purposes.
Here an example:

Is there a better mesher for Rhino or a “workaround”?


zbrush can do this- interface is a PITA but the results are good-

Well, I see the limitation mainly one the side of the renderer actually. In my opinion it makes limited sense to run engines inside Rhino which can’t deal with high polycounts. You have a lot of curvature here, to properly interpret it one needs either a dense mesh or a Low Res cage of a HiRes quad mesh in conjunction with a Normal map.
In other words: Even if one brought this geo into Zbrush and created a beautiful quad mesh, this mesh could not be Low Poly (at least not for detail shots). One needed to subdivide the remesh result and reproject to your imported Nurbs-rendermesh and either use this version of the mesh directly – or bake the detail into the mentioned map which swindles it back in, at rendertime. Then one can use the Low Poly cage.

Can you post a portion of this polysrf?

I would love to read the solution for this post, as I always work on both Poly and NURBS. I found this problem raises at least once a week.

a little tips I found when doing conversion =

Rebuild NURBS to Degree 1 (UV) -> Explode Surface -> Convert to Mesh (Setting = Maximum 1 Quad face per Srf) -> Global weld (assuming srf Patches hav nice Isocurve Flow) -> Apply Smoothing algoritm (NURMS, opensubdiv, etc etc) -> now you have a 1 unified skin mesh that resembles your original NURBS patch. however bear in mind that =

1.NURBS patches should be constructed with Control Point Curve instead of Interpolated one
2.Unified control point weight distribution
3.No trimming occurs on the boundary of NURBS patches

so far that workflow works for all my Architectural model.

however this method will deform your original Shape a little (Depending on how complex the model is)
I would suggest this only for doing a visualization.

thats all

Alternative mesher: for my work I use MoI3D as mesher often. Rhino create unneeded kinks at the meshes often, most if I try to get a low poly count. Also MoI is using all cores and so it’s much faster. And some times Rhino needs endless to mesh fence objects, MoI create the mesh within a short time.

PS: Could the MoI mesher not plugin to Rhino? Maybe a code library could be direct used by Rhino.

Hi Micha,
I doubt that one could create a greatly lighter mesh with Moi on models with a lot of curvature. One needs a lot of faces where things are bulged, whether one now sews the seams between patches with Triangles (Rhino) or Ngons (MoI) doesn’t matter. In the render-engine everything gets triangulated anyway – also those border Ngons.
Ngons mostly make sense on boxy stuff, here one can reduce the polygon count effectively, when compared to the V5 Rhino mesher.

Hi Guys,
thanks for the input!

Just to descripe more in detail my challange and why I look for a better mesher in Rhino.
I get complex Rhino files from external partners which I need to prepare for rendering.
The main task during this preparation phase is to create an even, light and “close as possible” mesh.

The NURBS data is really bad. You will see it in the sample file
Better Meshing for Rhino - Sample (5.6 MB)

I can’t use expensive external tools like zbrush because of budget limitations.
The meshing results from Mol3D look very good. Unfortunately I have not found a way that the different meshed patches connect with each other. Maybe somebody can try this with the sample geometry.

The mesh quality which I look for looks like this. It is not 100% watertight but for rendering good enough.
Better Meshing for Rhino - Reference Meshing.3dm (294.6 KB)

Thank you for your help.

This simple setting should render fine and with < 200000 it has a reasonable polygon count for such a complex part. If one needs game engine level optimization I would suggest the Normal-Map route. I wished this silly polygon-crunching wouldn’t be neccesary for some engines…

Hi Hifred,

imagine that this geometry part is just 5% of the whole 3D file. Your proposed mesh setting is way too high. The reference mesh file show the mesh density I want to achive.

Doe’s “weld vertices along edges” of the MoI mesh settings not do the job?

Or do you like mesh polygons flowing over the NURBS borders? This can be done per meshing and following _reducemesh - see attached screenshot.

Edit: … and if you weld the mesh before reducemesh, than your final mesh is free floating over geometry.

[quote=“Norbert, post:12, topic:18860”]
imagine that this geometry part is just 5% of the whole 3D file. Your proposed mesh setting is way too high.
[/quote]It could easily be 5% of the scene, at least with Maxwell, rendering 4 mio polygons is nothing unusual, but one can also show 100 of the these “vacuum-cleaners” in a file, without slowing the calculation down.
If an alternative engine has problems here, one might be able to feed the geometry in already in a preprocessed way, at rendertime. I’m not trying to give you a hard time but isn’t it odd to spend hours trying to create something smooth and then handing over to the engine just a rough representation of it?

Hi Micha,

I have tried this option without sucess with the sample file.
There are still open edges:

Maybe I missed any tolerance settings?

Yes, good point! I also considered this way.
The small downside is that the well defined edges from the CAD model may be softened. But I will do some trials with this way.


The problem is the model quality, to much naked edges. You need to fix it at Rhino before, for example explode and join with a lower tolerance or manual join naked edges ( _JoinEdge). But better would be to find the reason for the errors.

Hi Micha,

I know the reasons for the errors. But unfortunately I can’t change influence the 3D file quality I receive.
To rework the edges would take too much time.

Somebody has an idear how to mesh my “crappy” data? I don’t give up :smile:

thank you for you great help,

i think the way to go here is a dalaunay mesh.
i have been in search for a good nurbs-to-delaunay-solution for very long time and also asked this from the rhino development team.
i attached a quick approach created in 3dsmax. unfortunately the max-nurbs-module is stone age and cannot join surfaces, therefore the delaunay also has gaps at the edges, but it gives you an idea of what i mean.

recently i found ecaxtflat for rhino. obviously it also can create and optimize delaunays, but this is only a small part of its capabilities (fabric pattern generation) , so i guess exactflat is kind of an overkill for your purpose.
roberto (1.1 MB)

This is really stunning…In the VFX world people use most elaborate tricks to let something Lowpoly appear detail rich. Nurbs Visualizers triangulate and decimate without mercy :o)

Here’s what Zbrush spit out after quadrangulation. At this resolution, without additional Normal map /reprojection I’d say it’s pretty worthless but one could easily stitch the holes using polygon methods. (234.6 KB)

Try explode -> join -> manual join the few naked edges. So you should get your model closed within 3 min. Meshing - what’s your goal? If the model is “repaired” the mesh should be quite ok.