Conversion of SubD to Brep

I’m curious how Rhino determines how many surfaces to create when converting a SubD object to a brep, and also how it determines how the surfaces are placed. Is it related to curvature? Thanks.

1 subd face= 1 nurbs face. There is a tool for combining surfaces in this process in the works-

@theoutside Has there been any further development on the tool for combining surfaces while converting SubD to Brep? We’re trying to include this in a workflow, and the additional control would be helpful.

Hi Scott - ToNurbs will let you pack or not pack faces, as far as I know that is the only control. How it decides what to pack is known only by the larger brains – @pierrec - is there anything you can add that might be helpful?

-Pascal

@pascal Yep this is great. We’re working in GH–looks like we can also pack faces with this: https://developer.rhino3d.com/api/RhinoCommon/html/T_Rhino_Geometry_SubDToBrepOptions.htm

Hi @ScottMitchell, looks like Pascal covered what we have now, and you’ve found the SDK pages for SubD to Brep. In the future there are plans to support subobject conversion (RH-59619 Sub-object support for ToNURBS), and additional packing methods including user-supplied packings.

Please let us know if you have further questions.

I have one follow up question/issue: do you expect there to be problems with SubD.ToBrep (with or without packing) for subD surfaces with high face counts (> ~30,000)?

We’re seeing that some high-face-count subD surfaces produce invalid breps. In particular, they produce invalid surfaces around vertices with an odd number of adjacent faces. In cases where packing is turned on, this is also accompanied by some unsuccessful packing.

It’s my best guess is that this tends to happen as SubD face count gets high. When I isolate a smaller section of the SubD (~1000 faces) and run it through the same workflow (ToBrep), I do not see the issue:

Do you think that’s the issue? Or can you think of anything else that may be causing SubDs to convert to invalid breps in these cases?

Hi Scott - if you can share the file with us, please send to tech@mcneel.com, to my attention, with a link back here in your comments. The simplest file that shows the problem would be best, but any one will do.

-Pascal

We currently have an issue with converting SubD with over 30k faces to NURBS, here is the work item: RH-62751 ToNURBS: SubD with 450k faces fails to convert to NURBS, missing faces around extraordinary vertices.

This looks like a SubD coming from QuadRemesh, and at least in the areas you are showing it looks largely over-defined. Is it possible to reduce the face count? Wild guess but I would say that you could get almost the same rebuild error with a QuadRemesh with 1/8 to 1/4 of the faces, and guide curves on the sharper edges.

Ah, perfect - it saves me a YT write up. @pierrec I have Scott’s file if that is helpful here, I can attach it to that YT.

-Pascal