Creasing with two Subdivision modifiers behaves differently in 2.8 than in 2.79

The behaviour of creasing has changed in Blender 2.8 and I’m not sure if it’s a bug or a feature. In Blender 2.79, creasing was only respected by the first Subdivision modifier you put on a mesh. Creased edges remain sharp. If you added another Subdiv modifier, the entire mesh was smoothly subdivided, including the previously creased edges. This is actually a great feature and really helpful for hard surface modeling (picture 1-3).

In Blender 2.8, creased edges remain sharp when you stack two Subdivision modifiers on top of each other (picture 4)

Is this a bug or a feature? If this is a feature, there should be an option to ignore creasing in a Subdivision modifier or Blender will lose an important feature for speeding up hard surface modeling.

3 Likes

AFAIK in 2.7x, the SubSurf Modifier had an option ‘Use OpenSubDiv’. In 2.8 that’s the default and the only one. And I’ve been hearing that it is still a WIP when it comes to getting it to where 2.7x was.

Only recently we got to actually edit using ISO surface in EditMode

You could file a bug report. From 2.8 main menu, Help > Report a Bug

1 Like

That’s correct. The pictures above were taken without using OpenSubdiv in 2.79, so this does not make a difference unfortunately. The geometry would be the same in 2.79 with OpenSubdiv enabled, but the shading would be different. So this is a general bug/feature related to the modifier and not related to OpenSubdiv.

I am aware of the state of the modifier in 2.7x.
Just saying that, from my knowledge, the SubDivision Modifier in 2.8 is still a WIP

Ah, just re-read your post. Sorry, I got that wrong, thought you meant the state of OpenSubdiv, not the modifier in general :slight_smile:

no worries!
Prost
:beers:

I’m going to guess that this has to do with the switch to opensubdiv for all subdivision surface related things. 2.79 only used something from opensubdiv to speedup the display of subdivision surfaces in the viewport. The code under the hood was still blender’s own in house solution.

I remember that someone said there was a glitch related to using adaptive subdivisions with edge creases in 2.79, but the developers chose not to fix it because they had plans to move to opensubdiv for everything. It’s possible the old behavior for edge creases in blender wasn’t even intentional.

There were some other long standing issues that where fixed when they moved everything to opensubdiv (spikes while sculpting on lower subdivision levels in the multires modifier), so they might not be willing to have the old code there to allow the option.

Btw, can’t you just reduce the edge crease for the edges in the center in order to get the result you want?

1 Like

Somebody made a report: https://developer.blender.org/T60502

1 Like

You still have ability to make a copy of mesh without creases and to insert a data transfer modifier (referring to that copy) between both Subdivision Surface modifiers, in order to nullify creases effect only for last modifier.

1 Like

I’m not sure if that bug report addresses the issue regarding changed crease behaviour with multiple Subdivision modifiers.

I also really miss the 2.79 workflow of creasing + subdivisions, and started a topic about this at the Blender Devtalk board a while ago.

I also entered the wish for the return of the old workflow at Right-Click Select. You can vote for that if you like.

2 Likes

https://graphics.pixar.com/opensubdiv/docs/subdivision_surfaces.html#semi-sharp-creases

It is possible to modify the subdivision rules to create piecewise smooth surfaces containing infinitely sharp features such as creases and corners. As a special case, surfaces can be made to interpolate their boundaries by tagging their boundary edges as sharp.

However, we’ve recognized that real world surfaces never really have infinitely sharp edges, especially when viewed sufficiently close. To this end, we’ve added the notion of semi-sharp creases, i.e. rounded creases of controllable sharpness. These allow you to create features that are more akin to fillets and blends. As you tag edges and edge chains as creases, you also supply a sharpness value that ranges from 0-10, with sharpness values >=10 treated as infinitely sharp.

It should be noted that infinitely sharp creases are really tangent discontinuities in the surface, implying that the geometric normals are also discontinuous there. Therefore, displacing along the normal will likely tear apart the surface along the crease. If you really want to displace a surface at a crease, it may be better to make the crease semi-sharp.

In blender 1.0 would have been essentially equivalent of Pixars creasing value of 10, except blenders implementation was simpler and didn’t split normals, instead either you would use auto smoothing or split edge normals via other means such as the edge-split modifier.

If you set your creasing to a value less than 1.0 does it still split the normals? If so then you have successfully produced an example of a bug, otherwise it seems to be correct behavior to me.

1 Like

There was a fix to creasing behavior today.
https://lists.blender.org/pipermail/bf-blender-cvs/2019-January/118747.html

What that means for starters is that creases applied to the edge of meshes with no volumes now works as in 2.79.

1 Like

The double subdivision method has kinda been made obsolete thanks to the new open subd creasing

You don’t need to do it anymore

1 Like

Thank you for all your responses. What everyone wrote here made me understand the subdiv and creasing behaviour better and find a solution in 2.8. Here’s the condensed conclusion:

Blender 2.7
Using two Subdiv modifiers on top of each other becomes unnecessary if the sharpness is controlled by the creasing value (instead of the Subdiv values of the two modifiers). Fine tuning is also easier this way.

Blender 2.8
Using only one Subdiv modifier and varying creasing values works in 2.8 too, but the Quality setting has to be increased to take the creasing into account.

Never set creasing to 1 unless you really need a razor sharp edge. The higher the Quality setting is, the finer you can tweak values close to 1.

I made a picture comparison to show the differences:

You can download the test files I have created for this comparison as well:
Blender Creasing 2.7 vs 2.8.zip (144.1 KB)

4 Likes

Hey, that’s great, @Sersch, many thanks for your insights. So OpenSubdiv creasing with high quality is the way to go in 2.8, good to know.

I haven’t done car modeling in ages but that pic there by Sersch is why I moved away from creasing and I can’t understand blender heads continued infatuation with it.

I keeping having high hopes about OpensubD but maybe my hopes are misplaced 4 to 6, sub-d iterations to just get descent creases (which BTW is the same situation we were in with the older sub-d code). now imagine you have a base mesh with 2000 polys, sub divided that sucker is gonna come in at 8 million polys.

1 Like

Yes, it can be annoying at times. I recently bought the Meshmachine addon, the workflow there looks much more intuitive. And with the new changes to the Bevel modifier and maybe even quad chamfer in the future there are some other good options on the horizon.

Many thanks for the explanation with the quality setting! :slight_smile:

What is the reason for the stronger smoothing in 2.8 btw (simple cube with 1 subd level)?

It does not seem to have to do with open subdiv because this only affects the shading if I enable it inside of Blender 2.7

I don’t fully get it, but older versions of blender didn’t really use opensubdiv to subdivide the mesh. It just used it to accelerate the display of the subdivided mesh in the viewport. In 2.8 they got rid of the custom code they used to use in favor of doing everything with opensubdiv. That is why the result isn’t the same.