Rhino WIP feature: SubD weighted creases (sharp edges)

Rhino WIP has SubD weighted creases.

Using weighted edges (also called sharp edges) allows you to create a feature somewhere between a smooth edge and a crease edge without adding complexity to the SubD control net. Weighted edges have continuous surface tangent and curvature and they are a good tool for making fillet like features.

NOTE WELL:

  • SubD edge weights are saved only in Rhino WIP version 8 3dm files. If you SaveAs a version 7 file, all edge weight settings are lost.
  • Do not use weighted edges in models you, your customers, or your colleagues need to use with Rhino 7.

Rhino WIP weighted edge related commands:
SubDCrease - for setting and modifying edge weights.
SelSubDEdges - for selecting any combination of weighted, smooth, crease and boundary edges.
ShowEdges - now shows weighted edges.

SubD weighted edges example.3dm (232.8 KB)

26 Likes

hello.
I am happy with this new feature.
But it’s a little disappointing.
I’m using Blender for SubD modeling.
FBX file exported from Blender contains crease weight data but it is not working when imported into Rhino.
I think the crease weight data included in FBX would be very useful if it worked in Rhino.

2 Likes

So we have a %0 weight smooth option along with SubD Fillet Edge option. Do they give the same result or is there a difference?

If I try to apply a SubDCrease with a weight of 0, nothing changes. So I assume it’s basically the “smooth” option.
However there is a difference between a 100% SubDCrease and a Crease.

In this case I would not use a crease into a variable crease. I’d simply use variable crease for the whole edge.

you are correct 0% crease does not do anything…because it’s 0% :wink:

I do agree with you however, this does appear to be a scenario where the 100% crease should match up with the 100% variable crease.

@dalelear can shine some light if this is a bug or expected behavior for reasons which he can detail.

If he agrees this is a bug I’ll YT it and we’ll get it added to the pile.

I agree this result is ugly. The ugly wart between the 100% weighted edge and the crease is a dart vertex and it’s the same problem (but smaller in scope) that happens at dart vertices when a smooth edge turns into a crease edge.

All weighted edges (from 0% weight to 100% weight) have smooth surface normal and surface curvature across the weighted edge. High percentage weighted edges are basically smooth edges with a tighter bend.

The transition from a smooth or weighted edge to a crease edge always requires a dart vertex at the transition point. The instantaneous change from a smooth surface to a creased surface at dart verties is almost always ugly. This is an unavoidable and unpleasant artifact of the Catmull Clark subdivision rules Rhino uses.

Sometimes you can tweak control points to hide the wart, but in the case shown there is no feasible way to do this.

While this is not a bug (the subdivision surface is being correctly calculated), it is incredibly annoying. The workaround Kyle suggested is the best option if using a 100% weighted edge in place of the crease is acceptable from a design point of view. The other work around is to insert more edges on the smooth side of the dart vertex to reduce the extent of the ugly wart.

I also agree the terminology we use is sloppy and misleading. We often refer to N% weighted edges as N% creases, but those weighted edges behave more like smooth edges than creases and using the term N% crease sets up false expectations of what will result.

1 Like

Thanks for the explanations.
Actually I wasn’t really concerned about the ugly vertex here, it was only to show the difference between the two creases. next to each other. In general it’s better to avoid creases on interior edges anyway.

In a way the true crease is an edge weighted with +infintity ?

I do think however the distinction should be more clear in the commands. If I recall correctly a few months ago the command was Sharp (or SubDSharp ?), not SubDCrease, which is indeed confusing.

If it were possible to set an edge weight to +infinity, the subdivision algorithm would create a crease edge.

We had an long involved internal discussion on naming. The majority felt the term “sharp” was confusing and hard to translate and the consensus was to rename the command SubDCrease and use the term “weight” in place of “sharpness.”

You can still type “SubDSharp” or “Sharp” to run the SubDCrease command, but that’s not going to help clear up the confusion we are discussing here.

When communicating with colleagues, teaching, and so on, with the “weighted” terminology Rhino currently uses, I suggest these edge adjectives for clarity.

smooth edge (for interior edges with 0% weight).
weighted edge (for interior edges with any nonzero weight including 100%)
crease edge (for interior crease edges)
boundary edge (for edges on the boundary)

NOTE: Boundary edges are technically crease edges and all crease edges (interior, or boundary) use identical subdivision rules.

3 Likes

I 100% agree on this.

Therefore the command should be named SubDWeightedEdge :innocent:

1 Like

Hello.
Sorry it took me so long to check the reply from my post.
What I requested is to import the SubD created in Blender into Rhino as it is.
Currently, when Blender’s SubD is imported into Rhino, all Crease-applied edges are Crease (Without Weight).
As a test, I compared the Polygon mesh exported from Blender with the shape of Rhino’s SubD.
It seemed that the results were the same except for the outer edge.
I Think that the structure of SubD in Blender and Rhino is the same.
So I think it’s not difficult and very useful to import SubD exported from Blender into Rhino with the same geometry.
Because Blender is a very good SubD modeling software.
And it’s free software!
Of course, Rhino itself needs a SubD modeling tool, but it will take a long time to catch up with Blender’s tools.
For these reasons I would like Rhino’s FBX import function to support Blender’s SUBD export data.


2 Likes

There’s a command named _Weight

_WeightedSubDEdge would be easier to type than _SubDWeightedEdge


Will the vertex weight crease also be implemented?

5 Likes

Sorry, maybe I’m thick (most likely the case) but it’s not clear for me from reading this thread what the status is when it comes to importing crease weights from a Blender SubD mesh. Is it possible yet, and if so, what file format do you have to use, and is it isn’t possible, is it assigned to a Rhino version or just “future”?

Hi, @dalelear
Please make SubD Weighted Creases possible in Grasshopper.

1 Like

Hi @dalelear
Is this Api (SubD Weighted Creases) add in c# Rhino SdK
If no?
Please add it
THANKS

2 Likes

I second this, please add this to SDK and ideally openNurbs as well.

RH-79547 Expose SubDCrease functionality to RhinoCommon

1 Like