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$
  • 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 '19 at 14:50
  • $\begingroup$ Added a screenshot. $\endgroup$ – Legoman Jan 11 '19 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$ – Jaroslav Jerryno Novotny Jan 11 '19 at 15:10
  • $\begingroup$ The problem is also appearing in the final render... $\endgroup$ – Legoman Jan 11 '19 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 '19 at 19:10
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$
  • $\begingroup$ Phenomenal answer! Thank you so much! :-D $\endgroup$ – Legoman Jan 12 '19 at 22:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.