Preserving Crease-per-Iteration before exporting to OBJ?

this is perhaps an absurd question. but I stumbled upon this problem quite often until I get very annoyed by it, so might as well ask you guys here =

Is it possible to tell a Mesh edge to preserve its hardness (crease) up to any given Smoothing iteration?
also, can it be preserved in OBJ export?

for example = somehow set a “Crease” number to “2” to specific edges, save that information during OBJ conversion so that when I apply Smoothing operation up to Iteration 2, it will maintain its crease. but when I crank up the number of iteration to 3, it then starts to smooth out.

I know that there isn’t any native tool to do this but is there a work around?

or maybe somebody has done a little plug in or script for this?


Not that I know of. I would suspect it would also depend on what the obj format can export and if we support that yet. Also the program importing the mesh would need to know the crease condition for the edge. What program are you going to?

@tim may have an idea about if obj can hold this info.

While it’s generally easy to exchange mesh geometry creases are the big exception. Every vendor has offered somewhat different implementations, there used to be no standard. Older exchange formats such as .obj can’t even store creases anyway, so this was a bottleneck too.
Some newer formats can – in principle – store creases, such as alembic or fbx, and the framework opensubdiv promises to establish standardization. In reality one still can’t create creases in program A and get’s exactly the same appearance out of the box in program B + the same sets of controls exposed everywhere. The situation is obviously better between Autodesk programs as demonstrated here.

There’s a good but hardly known workaround: If you have Zbrush or any program which allows you to recover lower SubD levels from a frozen HiRes mesh you may import at high resolution to program B – which gives you the exact same appearance as in the source program and you’re given back a perfectly editable low res cage. This is imo also the way Rhino should deal with creasing, as it works universally. Hope @piac is reading…

@BrianJ : I m exporting it to Maya. using OpenSubdiv Smooth operation it recognize Crease that is set to iteration, but I dont know how to set that up in Rhino. I use OBJ for exporting Mesh because many people recommend that, however I havent looked at other file format that can support Mesh too. I dont mind if I have to use another format if that can handle more info to the mesh :smile:

I realize that exporting Creases is a major problem. even Maya to Max has some problem too when it comes to creases. (at least till version 2015)

@Hifred, Yes, I agree with you. workflow Zbrush-Maya is good for baking hi-res mesh to low-res but in this case I am tempted to use Rhino to generate my Mesh via Grasshopper and I need a simplest topology possible for further tweaking in Maya. Creases that adapt to smooth iteration can prevent the need of using MicroChamfer, also saving a lot of time so I dont have to add extra topology in Grasshopper component.

however you mention about Fbx, I might give it a try as I have never used it in Rhino Export:) (I am bad with technical stuff so I assumed FBX is only for transfering file in between Autodesk Software :slight_smile: )

may I know which format is best to export Rhino Mesh and NURBS?

I normally use IGES for NURBS and OBJ for Mesh, or are these not optimal enough?

sometimes exporting IGES to MAYA can explode all my Polysurfaces into individual surfaces. which then I have to attach them back one by one in MAYA and its time consuming :frowning:

There is something in OBJ called a smoothing group (see, but I’m not exactly sure what they’re supposed to do. Furthermore there is nothing in Rhino, that I’m aware of, that would be a logical correspondence to a smoothing group so we don’t export them.


Currently, even if you use fbx for export from Rhino you won’t be able to save crease information.The exporter will not have this hooked up, as Rhino currently doesn’t even know the concept of mesh creasing. Importing and export of creases will not work, using any format or setting. It may not be relevant to your current project but you can bring Maya creases into Zbrush by using the .ma file format.

One can’t answer such general questions properly. For meshes obj generally stores everything Rhino can handle. Other formats are more modern and efficient and support a lot more features, such as physics simulation data or character animation – but this is all stuff Rhino can’t interpret anyway. For Nurbs the choice will depend on your target application.

If they support Step try that… I prefer it over Iges for the reason you mention but when importing.

You seem pretty technical to me! A lot of users aren’t even familiar with what a mesh is.

Try UnweldEdge in Rhino on the mesh prior to export and see if you can maintain a crease. I don’t have Maya here but in a Blender test it’s not maintained after remove doubles>sub-d modifier.

@dalelear You might find this topic interesting.

It’s essentially a manual control about the smoothing angle for sections of the model – a feature which typically gets used for low poly game geometry which doesn’t get Catmull-Clark subdivided. The idea is to have areas appear smooth although they are indeed roughly facetted and to give other areas an edgy appearance.
Smoothing groups as such do not alter the geometry but some programs allow to convert this information into creasing upon subdivision. A similar concept used in other SubD apps is Hard and Soft edges (also supported by the obj format).

@Hifred: Smoothing group is still present in 3dsmax as you have mentioned it controls normal angle to get smooth look without actually adding resolution to it.
3dsmax smoothing operation is NURMS and it basically recognize this smoothing group and can be applied as hard edges for smoothing. however it does not present in Maya. and I found creasing is much more powerful as it doesnt break the normal direction so even high crease amount can still catch light and produce similar result to microchamfer.

now perhaps Rhino 6 subdiv can have this Crease support? :stuck_out_tongue:

@Brian, unweldEdge actually break the edges so I have to weld it back in Maya later. although it works it actually produce a sharp break as oppose to a nice microchamfer-look that is produced by creasing.

I am aware to the current mesh-availability in Rhino 5 so if there is no workaround I will just do the good-ol microchamfer. :smile:

as I am quite sure Rhino 6 will answer all I need :stuck_out_tongue:

Making sure @BrianJ sees this…