1
$\begingroup$

I use creases and subsurf modifiers a good deal for (more or less) hard-surface modeling projects.

This always worked great in 2.7x, but in 2.80 there seems to be a good deal of issues. Creased edges have some remarkable unsightly jaggedy areas that very much detract from the appearance of the model. I believe (though potentially fallibly) that this is due to Blender switching over to PIXAR's OpenSubdiv.

(The attached .blend shows off the problem well enough, but it can look exponentially worse depending on the situation.)

How might I avoid this issue in 2.8x, at least replicating the level of not-as-ghastly-looking-ness of 2.79b?

(The attached image shows the desired result.)enter image description here

$\endgroup$
7
  • 1
    $\begingroup$ A screenshot of the desired result would help. I can see what you mean in the 2.80 sample you provided, but creases can also produce funky results in 2.79, or at least they can yield different results depending on certain values. $\endgroup$
    – aliasguru
    Jan 11, 2019 at 14:50
  • $\begingroup$ Added a screenshot. $\endgroup$
    – Legoman
    Jan 11, 2019 at 14:58
  • $\begingroup$ The mesh and its normals are the same, what changed in 2.8 is lighting. It now better reveals what was the problem with your mesh all along, it only seems it worked better in 2.7x. You need to better define edges with bevels or fix the normals in the mesh (auto smooth with 60° threshold, split edges modifier, custom normals, etc.) $\endgroup$ Jan 11, 2019 at 15:10
  • $\begingroup$ The problem is also appearing in the final render... $\endgroup$
    – Legoman
    Jan 11, 2019 at 15:43
  • $\begingroup$ @JaroslavJerrynoNovotny All normal types seem to be ok in the provided model (judging from the respective overlays in Blender 2.80). There's nothing in it that would justify the extreme shading artefacts that appear. It's also kind of suspicious that the artifacts appear / disappear exactly at X0 position. I still believe this might be a shading bug in 2.80, worth reporting to the bug tracker. $\endgroup$
    – aliasguru
    Jan 12, 2019 at 19:10

1 Answer 1

6
+150
$\begingroup$

This was a bug (at the time of writing this answer), which got fixed in https://developer.blender.org/T58994

Basically the rest of the answer is redundant now, as 2.80 shows the same crease behavior as 2.79 since the bug was fixed. Automated builds will be updated starting from 24. 01. 2019.

Old answer

This is a bug still in the beta of Blender 2.8. The switch to OpenSubdiv could have caused the problem, but on the other hand, nightly builds of Blender 2.79 can also use the OpenSubdiv implementation in the SubSurf modifier, and don't show the described behavior / look. There are two bug reports available currently, see https://developer.blender.org/T58410 and https://developer.blender.org/T58994 - the latter one also providing a solution.

Potential Solutions until a fix appears

One option is to set the crease values to 0.9999 instead of 1.0. To do that, go to Edit Mode, select one creased edge, and press Shift + G. In the Upcoming Select Similar menu, choose Crease. This will select all edges you creased. Now, in the Properties Panel (N - Key), type in 0.9999 to the Mean Crease field:

enter image description here

A second option is the new modifier that was introduced in Blender 2.80, which allows for nice control over normals on more difficult geometry elements. A use case are extruded and beveled text objects with smooth shading turned on, but in your case this also serves as a solution.

Add the Weighted Normal modifier from the Modifier Stack / Modify section. This should immediately fix your problem, even though a warning is printed at the bottom of the modifier:

enter image description here

I have also increased the number of subdivisions and turned off Cavity from the Shading popover menu for clarity's sake. The warning itself might be interesting for you as well: It says that AutoSmooth should be enabled for this modifier to expose its full power. Once you do that here:

enter image description here

...your model should look even more refined:

enter image description here

But the best part is this: If you only use AutoSmooth without the Weighted Normals Modifier, you get entirely sharp edges:

enter image description here

So, depending on the look you're going for, choose your way to go.

$\endgroup$
1
  • $\begingroup$ Phenomenal answer! Thank you so much! :-D $\endgroup$
    – Legoman
    Jan 12, 2019 at 22:43

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .